Modify message templates

To modify a specific message template, you use the NewslettersManager class. First, you initialize the NewslettersManager. Then, you get the specified message template. Finally, you modify the title and the body text, and save the changes.

The following code modifies a plain text message template through the Native API:

  1. C#
     using Telerik.Sitefinity.Modules.Newsletters;  
     using Telerik.Sitefinity.Newsletters.Model;  
     using System;  
     using System.Collections.Generic;  
     using System.Linq;  
     using System.Text;  
     using System.Threading.Tasks;  
       
     namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.EmailCampaigns.MessageBodies  
     {  
         public partial class EmailCampaignsSnippets  
         {  
             public void ModifyMessageBody(Guid id, string newName, string newBodyText)  
             {  
                 NewslettersManager manager = NewslettersManager.GetManager();  
       
                 MessageBody messageBody = manager.GetMessageBodies().Where(b => b.Id == id).SingleOrDefault();  
       
                 if (messageBody != null)  
                 {  
                     messageBody.Name = newName;  
                     messageBody.BodyText = newBodyText;  
       
                     manager.SaveChanges();  
                 }  
             }  
         }  
     }  
     
    The following code modifies a page-like message template through the Native API:
  2. C#
     using System.Linq;
     using Telerik.Sitefinity.Modules.Newsletters;
     using Telerik.Sitefinity.Modules.Newsletters.Web.UI;
     using Telerik.Sitefinity.Modules.Pages;
     using Telerik.Sitefinity.Pages.Model;
     
     namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.EmailCampaigns.MessageBodies
     {
         public partial class EmailCampaignsSnippets
         {
             public static void UpdateMessageBodyByName(string templateName)
             {
                 // Get Newsletters Manager and Newsletters Page Manager
                 PageManager newsLettersPageManager = NewslettersManager.GetPageManager();
                 NewslettersManager newslettersManager = NewslettersManager.GetManager();
     
                 // Get message body
                 var messageBody = newslettersManager.GetMessageBodies().Where(t => t.Name == templateName).FirstOrDefault();
     
                 // Get the message body as Page
                 PageData pageData = newsLettersPageManager.GetPageData(messageBody.Id);
                 var pageNode = newsLettersPageManager.GetPageNodes().Where(p => p.Id == pageData.Id).SingleOrDefault();
     
                 // Edit the Page
                 var editPage = newsLettersPageManager.EditPage(pageNode.GetPageData().Id);
     
                 if (pageData != null)
                 {
                     // Get all controls of type ContentBlock
                     var contentItem = editPage.Controls.Where(c => c.Caption == "Content block").FirstOrDefault();
     
                     // Create new Content Block
                     NewslettersContentBlock myNewContentItem = new NewslettersContentBlock();
     
                     // Get and Update the content
                     var currentControl = newsLettersPageManager.LoadControl(contentItem) as NewslettersContentBlock;
                     var innerHtml = currentControl.Html;
                     myNewContentItem.Html = innerHtml + " -> your updated text goes here";
     
                     // Copy the properties of the current Content Block item to the newly created
                     newsLettersPageManager.ReadProperties(myNewContentItem, contentItem);
     
                     // Checking all changes to the Page
                     newsLettersPageManager.PagesLifecycle.CheckIn(editPage);
     
                     //Call the method to save editing
                     newsLettersPageManager.SaveChanges();
                 }
             }
         }
     }
     
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?