File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/App_Code/Emails/CustomEmailMessage.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CMS.EmailEngine;
using CMS.CMSHelper;
using System.Net.Mail;
using CMS.GlobalHelper;
using CMS.MacroEngine;
using CMS.SiteProvider;
namespace Pux.Emails
{
public class CustomEmailMessage
{
#region "Properties"
EmailTemplateInfo mEmailTemplateInfo;
string mFrom = null;
public string From
{
get
{
if (mFrom == null)
{
mFrom = mEmailTemplateInfo.TemplateFrom;
}
return mFrom;
}
set
{
mFrom = value;
}
}
public string To { get; set; }
string mCC = null;
public string CC
{
get
{
if (mCC == null)
{
mCC = mEmailTemplateInfo.TemplateCc;
}
return mCC;
}
set
{
mCC = value;
}
}
string mBCC = null;
public string BCC
{
get
{
if (mBCC == null)
{
mBCC = mEmailTemplateInfo.TemplateBcc;
}
return mBCC;
}
set
{
mBCC = value;
}
}
string mSubject = null;
public string Subject
{
get
{
if (mSubject == null)
{
mSubject = mEmailTemplateInfo.TemplateSubject;
}
return mSubject;
}
set
{
mSubject = value;
}
}
private Attachment[] mAttachments = null;
public Attachment[] Attachments
{
get
{
return mAttachments;
}
set
{
mAttachments = value;
}
}
public object[,] SpecialMacros { get; set; }
public string Language { get; set; }
#endregion
#region "Constructor"
public CustomEmailMessage(string emailTemplateName)
{
EmailTemplateInfo eti = EmailTemplateProvider.GetEmailTemplate(emailTemplateName, SiteContext.CurrentSiteID);
if (eti == null)
{
throw new Exception("Invalid template -- does not exists.");
}
mEmailTemplateInfo = eti;
}
public CustomEmailMessage(EmailTemplateInfo emailTemplateInfo)
{
mEmailTemplateInfo = emailTemplateInfo;
}
#endregion
#region "Send"
public void Send()
{
EmailMessage msg = new EmailMessage();
if (string.IsNullOrEmpty(To))
{
To = CC;
CC = "";
}
msg.EmailFormat = EmailFormatEnum.Both;
msg.From = From;
msg.Recipients = To;
msg.Subject = Subject;
msg.CcRecipients = CC;
msg.BccRecipients = BCC;
// clear "CC" field if it was used as a source for the "To" field
mEmailTemplateInfo.TemplateCc = CC;
if (Attachments != null)
{
for (int i = 0; i < Attachments.Length; i++)
{
msg.Attachments.Insert(i, Attachments[i]);
}
}
MacroResolver mcr = MacroResolver.GetInstance();
if (!string.IsNullOrEmpty(Language))
{
mcr.Culture = Language;
}
if (SpecialMacros != null)
{
for (int i = 0; i < SpecialMacros.GetLength(0); i++)
{
mcr.SetNamedSourceData(SpecialMacros[i, 0] as string, SpecialMacros[i, 1]);
}
}
EmailSender.SendEmailWithTemplateText(SiteContext.CurrentSiteName, msg, mEmailTemplateInfo, mcr, false);
}
#endregion
}
}