January 14, 2011

Blog to Email Subscriptions using CMS Made Simple and Feedburner

Filed under: Tutorial,Web Development — Jack @ 4:15 pm

CMSMS Blog ---> FeedBurner ---> Email

Have you ever needed a way for visitors to subscribe to blog updates and be notified via email?

Subscribing to an RSS feed is great for people that use RSS readers. However, mostly everyone is already accustomed to using email. Why not save your end-users some trouble and put your posts directly in their inbox?

In this step-by-step tutorial, we’ll be covering how to set up a powerful and free email subscription solution for your blog using CMS Made Simple and FeedBurner.

We’ll be using the latest version of CMS Made Simple (ver. 1.9.2) with its built-in News module for our blog. The CMS Made Simple modules CGFeedmaker and CGExtensions create the feed. Feedburner handles the email subscriptions.

CMS Made Simple is a well-rounded, open-source CMS platform with an active community and many available modules that expand its core functionality. It’s definitely worth a look for your next content-managed project.


  1. Create a Google account if you do not already have one. Google owns FeedBurner, so you have to use a Google account to access its features. You can sign up for one here.
  2. Log into your CMS Made Simple admin panel.
  3. Install CGExtensions and CGFeedmaker.
    1. Go to Extensions -> Modules from within the CMS Made Simple admin panel.
    2. CGExtensions needs to be installed first. Click the “Available Modules” tab and then click the “C” link to view modules starting with the letter C. Scroll down to CGExtensions and click the “Download and Install” link.
    3. After it installs go back and repeat the process for CGFeedmaker.
  4. Activate Pretty URLs in CMS Made Simple.
    1. Open a text editor, create a new document and paste in the code below (this code is taken straight from the sample htaccess.txt file provided with CMSMS 1.9.2):
      # Attempt to override some php settings, these settings may be helpful on some hosts if your
      # default configuration does not meet CMS's minimum requirements, and your host
      # has given your account appropriate permissions
      #php_value upload_max_filesize "10M"
      #php_value session_save_path "tmp/cache"
      #php_flag magic_quotes_gpc Off
      #php_flag register_globals Off
      #php_flag session.use_trans_sid Off
      # (this is important, so uncomment if your host permit)
      #Options -Indexes
      #ServerSignature Off
      #Options +FollowSymLinks
      # To prevend E_STRICT problems with PHP 5.3+ you can uncomment the following lines
      # Note: These settings should only be enabled for production sites!
      #php_flag display_startup_errors 0
      #php_flag display_errors 0
      #php_flag html_errors 0
      #php_value docref_root 0
      #php_value docref_ext 0
      RewriteEngine on
      #Sub-dir e.g: /cmsms
      RewriteBase /
      # 301 Redirect all requests that don't contain a dot or trailing slash to
      # include a trailing slash
      # but ignore POST requests.
      #RewriteCond %{REQUEST_URI} !/$
      #RewriteCond %{REQUEST_URI} !\.
      #RewriteCond %{REQUEST_METHOD} !POST$
      #RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
      # Rewrites urls in the form of /parent/child/
      # but only rewrites if the requested URL is not a file or directory
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.+)$ index.php?page=$1 [QSA]
    2. Save the file as htaccess.html. Upload it to your CMSMS root folder and rename the file to .htaccess (no extension, just “.htaccess”).
    3. Edit your CMSMS config.php file to have these settings starting at line 129:
      #URL Settings
      #What type of URL rewriting should we be using for pretty URLs?  Valid options are:
      #'none', 'internal', and 'mod_rewrite'.  'internal' will not work with IIS some CGI
      #configurations. 'mod_rewrite' requires proper apache configuration, a valid
      #.htaccess file and most likely {metadata} in your page templates.  For more
      #information, see:
      $config['url_rewriting'] = 'mod_rewrite';
      #Extension to use if you're using mod_rewrite for pretty URLs.
      $config['page_extension'] = '.html';
      #If using none of the above options, what should we be using for the query string
      #variable?  (ex. http://www.mysite.com/index.php?page=somecontent)
      $config['query_var'] = 'page';
    4. Save your changes to config.php and re-upload. Pretty URLs should now be functioning as expected.
  5. Create the feed.
    1. Go to Extensions -> Calguy’s Feed Maker. There are sample feeds provided by the module developer (calguy1000). Click on the sample feed named “news” to edit it.
    2. The “Feed Name” field should remain the same and leave the “Feed Extension” field blank (this uses the default extension, RSS).
    3. In the “Use this page for links” field select the CMS Made Simple page that your blog is on.
    4. Change the “Feed Title” to something appropriate for the subject matter of your blog.
    5. Edit the “Feed Link” to be the URL to your blog (the http:// location of your blog).
    6. Enter a phrase or sentence that sums up your blog in the “Feed Description” field.
    7. Optionally, you may enter a copyright notice in “Feed Copyright” and add your email address to the “Feed Editor” field.
    8. Enter 30 into the “Time to Live” field.
    9. Click Submit to save your changes.
  6. Copy and paste the following snippet into the head section of the CMSMS template your blog is using:
    {CGFeedMaker action='autodiscovery' feed='news'}
  7. Tell TinyMCE to use numeric encoding of entities. In CMSMS, go to Extensions -> TinyMCE WYSIWYG. Under the Advanced tab we need to select Numeric encoding in the “Encoding of Entities” dropdown box. We need to do this because named entities prevent RSS feeds from validating. For more info read Named versus Numeric Entities.
  8. Validate your RSS feed. Go to http://validator.w3.org/feed/ and enter the location of your feed (e.g. http://domain.com/feeds/news.rss). Click “Check” to check your feed for errors. Resolve any errors until your feed validates.
  9. Now that it validates its time to bring the feed into Feedburner. Go to http://feedburner.google.com/ and log in with your Google account.
    1. In the area that says “Burn a feed right this instant,” enter the location of your feed (e.g. http://domain.com/feeds/news.rss) and click next.
    2. This page shows the feed title that was created on Step 5D. Feedburner automatically creates a feed address on its domain for you which you can edit or leave as is. Click next.
    3. This page shows that your feed is now claimed in Feedburner. Click next.
    4. This page gives options for tracking statistics with Feedburner. These are optional so check any of the boxes you may want and click next. You will be taken to a page that tells you the feed is set up in Feedburner.
  10. We can now set up the Email Subscriptions.
    1. Click the Publicize tab. Under Services (in the left column of the page), click Email Subscriptions.
    2. Click Activate.
    3. If your audience uses a different primary language other than English, select it in the Language dropdown.
    4. Copy the code supplied by Feedburner. This code is for the subscription form the visitors will use to get email updates for your blog posts.
    5. Paste the code into your blog template in CMSMS. You may also add it to other templates. If you want them to be able to subscribe to blog updates from any page, put it in all of your templates.
    6. Optional: Change the wording and restyle the form with CSS (highly recommended).

In closing, you may want to adjust a couple of other settings to get the most out of Feedburner’s email subscriptions.

  1. Add a company logo to the emails sent by Feedburner.
    1. Upload a logo to a web location you control and make note of the URL.
    2. In Feedburner, go to Publicize -> Email Subscriptions -> Email Branding.
    3. Put the URL to your logo in the Logo URL field, scroll down and click Save.
  2. Choose the time you prefer to have the emails delivered.
    1. In Feedburner, go to Publicize -> Email Subscriptions -> Delivery Options.
    2. Select your Timezone and Scheduled Email Delivery time. Click save.

Congratulations! You now have a fully functioning blog to email subscription solution powered by CMS Made Simple and Feedburner. Enjoy!

5 Responses to “Blog to Email Subscriptions using CMS Made Simple and Feedburner”

  1. Evert
    2:05 pm on August 16th, 2011

    I love the tutorial!
    Does this work with CG Blog in stead of News as well?

    Thanks Evert

  2. Jack
    11:30 am on August 22nd, 2011

    Hi Evert, very glad to hear you liked the tutorial!

    I haven’t tested it with the CG Blog module, but the feedburner email notification integration should be the same–especially since calguy1000 developed both CG Blog and Calguys Feed Maker. However, and I’m not 100% sure on this, you may need to edit the feed template (Extensions -> Calguys Feed Maker -> [YOUR-TEMPLATE-NAME] -> Template Tab) to get it to work with CG Blog instead of news. Look for the {news} token and replace with the appropriate token for CG Blog.

    Please let me know how it works out for you!


  3. Evert
    2:47 pm on August 23rd, 2011

    Hi Jack!

    Again thank you for your reply.
    I managed to get it working with news now.
    I think I first just use news together with CG Feedback. That should make a blog just as well.

    Thank you for your tutorial.

    Greetings from the Netherlands – Evert

  4. Sathish
    2:39 am on August 24th, 2011

    Hi jack, I would like to create blog like articles in my website using cmsms cgblog, can u help me step by step procedures for using cgblogs and their templates, thanks

  5. Sathish
    2:41 am on August 24th, 2011

    Hi jack, I would like to create blog like articles in my website using cmsms cgblog, can u help me step by step procedures for using cgblogs and their templates, my email id is svawsw@gmail.com, kindly send those details to my email id too if can, thanks