protected override void InternalSend(Interfaces.IMessage message)
{
var Message = message as EmailMessage;
if (Message == null)
return;
if (string.IsNullOrEmpty(Message.Body))
Message.Body = " ";
using (MailMessage TempMailMessage = new MailMessage())
{
char[] Splitter = { ',', ';' };
string[] AddressCollection = Message.To.Split(Splitter);
for (int x = 0; x < AddressCollection.Length; ++x)
{
if (!string.IsNullOrEmpty(AddressCollection[x].Trim()))
TempMailMessage.To.Add(AddressCollection[x]);
}
if (!string.IsNullOrEmpty(Message.CC))
{
AddressCollection = Message.CC.Split(Splitter);
for (int x = 0; x < AddressCollection.Length; ++x)
{
if (!string.IsNullOrEmpty(AddressCollection[x].Trim()))
TempMailMessage.CC.Add(AddressCollection[x]);
}
}
if (!string.IsNullOrEmpty(Message.Bcc))
{
AddressCollection = Message.Bcc.Split(Splitter);
for (int x = 0; x < AddressCollection.Length; ++x)
{
if (!string.IsNullOrEmpty(AddressCollection[x].Trim()))
TempMailMessage.Bcc.Add(AddressCollection[x]);
}
}
TempMailMessage.Subject = Message.Subject;
if (!string.IsNullOrEmpty(Message.From))
TempMailMessage.From = new MailAddress(Message.From);
using (AlternateView BodyView = AlternateView.CreateAlternateViewFromString(Message.Body, null, MediaTypeNames.Text.Html))
{
foreach (LinkedResource Resource in Message.EmbeddedResources)
{
BodyView.LinkedResources.Add(Resource);
}
TempMailMessage.AlternateViews.Add(BodyView);
TempMailMessage.Priority = Message.Priority;
TempMailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
TempMailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
TempMailMessage.IsBodyHtml = true;
foreach (Attachment TempAttachment in Message.Attachments)
{
TempMailMessage.Attachments.Add(TempAttachment);
}
if (!string.IsNullOrEmpty(Message.Server))
{
SendMessage(new SmtpClient(Message.Server, Message.Port), Message, TempMailMessage);
}
else
{
SendMessage(new SmtpClient(), Message, TempMailMessage);
}
}
}
}