Hi Team,
Am trying to create a Template-based Email. Email Template is created under Notification -> Email. When I try to send a preview email am getting "Email Sent successfully!" Status. No exception created under Monitor. But email is not sent.
When I send preview email from any other template other then I created, email sent successfully there is no issue.
Here I attaching my code of my Template-based Email.
Kindly help me to resolve the issue.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telligent.Evolution.Extensibility;
using Telligent.Evolution.Extensibility.Api.Entities.Version1;
using Telligent.Evolution.Extensibility.Api.Version1;
using Telligent.Evolution.Extensibility.Email.Version1;
using Telligent.Evolution.Extensibility.Templating.Version1;
using Telligent.Evolution.Extensibility.Version1;
namespace Telligent.RewardPoint.Widget.Extension.Entities
{
public class CouponClaimEmailTemplate : IPlugin, ICategorizedPlugin, ITemplatablePlugin, IEmailTemplatePreviewPlugin
{
private ITemplatablePluginController _controller;
public void SetController(ITemplatablePluginController controller)
{
_controller = controller;
}
public void Initialize()
{
//throw new NotImplementedException();
}
private TokenizedTemplate[] _defaultTemplates;
public TokenizedTemplate[] DefaultTemplates
{
get
{
if (_defaultTemplates == null)
{
var myTemplateBody = new TokenizedTemplate("body")
{
Name = "Email - Body",
Description = "Body of the email.",
ContextualDataTypeIds = new[]
{
ContentTypes.DataTypeId
}
};
var myTemplateHeader = new TokenizedTemplate("header")
{
Name = "Email - Header",
Description = "Header of the email",
ContextualDataTypeIds = new[]
{
ContentTypes.DataTypeId
}
};
var myTemplateFooter = new TokenizedTemplate("footer")
{
Name = "Email - Footer",
Description = "Footer of the email.",
ContextualDataTypeIds = new[]
{
ContentTypes.DataTypeId
}
};
var myTemplateSubject = new TokenizedTemplate("subject")
{
Name = "Email - Subject",
Description = "Subject of the email.",
ContextualDataTypeIds = new[]
{
ContentTypes.DataTypeId
}
};
myTemplateBody.Set("en-us", @"");
myTemplateHeader.Set("en-us", @"");
myTemplateFooter.Set("en-us", @"");
myTemplateSubject.Set("en-us", @"");
_defaultTemplates = new[] { myTemplateHeader, myTemplateSubject, myTemplateBody, myTemplateFooter };
}
return _defaultTemplates;
}
}
public string Name => "Coupon Redeemtion";
public string Description => "Coupon Redeemtion";
#region ICategorizedPlugin Members
string[] ICategorizedPlugin.Categories
{
get { return new string[] { "Coupons", "Notifications", "Translatable", "Templatable", "Email" }; ; }
}
#endregion
public string GetTemplateName(EmailTarget target)
{
return GetTemplateNameDetails(target);
}
string GetTemplateNameDetails(EmailTarget target)
{
switch (target)
{
case EmailTarget.Subject:
return "subject";
case EmailTarget.Header:
return "header";
case EmailTarget.Footer:
return "footer";
case EmailTarget.Body:
return "body";
}
return string.Empty;
}
public void SendEmail(Guid rewardId)
{
CouponItems post = PointsCouponData.GetCouponDetails(rewardId.ToString());
var context = new TemplateContext { PostTarget = "Coupon Redeemption" };
context.AddItem(ContentTypes.ContentTypeId, post);
string renderedSubject = _controller.RenderTokenString("subject", context);
string renderedHeader = _controller.RenderTokenString("header", context);
string renderedBody = _controller.RenderTokenString("body", context);
string renderedFooter = _controller.RenderTokenString("footer", context);
Apis.Get<ISendEmail>().Send(new SendEmailOptions
{
Subject = renderedSubject,
Header = renderedHeader,
Body = renderedBody,
Footer = renderedFooter,
ToEmail = "*****@gmail.com" //To email address
});
}
}
}