public virtual void Send(SmtpServerInfo serverInfo)
{
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage {IsBodyHtml = m_isHtml};
// message.To.Add(string addresses) overload does not encode non ASCII chars
// http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=338631
// so have switched to using message.To.Add(MailAddress) overload instead
foreach (EmailUser user in m_recipients)
{
message.To.Add(new MailAddress(user.Address, user.Name));
}
foreach (EmailUser user in m_ccList)
{
message.CC.Add(new MailAddress(user.Address, user.Name));
}
foreach (EmailUser user in m_bccList)
{
message.Bcc.Add(new MailAddress(user.Address, user.Name));
}
message.Subject = m_subject;
message.Body = m_body;
message.From = new MailAddress(SenderAsString);
foreach (Attachment attachment in m_attachments)
{
message.Attachments.Add(ConvertAttachment(attachment));
}
SmtpClient client = new SmtpClient(serverInfo.SmtpHost, serverInfo.SmtpPort);
if (serverInfo.UseAuthentication)
{
client.Credentials = null;
}
MailMessageSendingEventArgs mailMessageSendingEventArgs = new MailMessageSendingEventArgs(message, client);
OnSending(mailMessageSendingEventArgs);
if (!mailMessageSendingEventArgs.Cancel)
{
// action was not cancelled
client.Send(message);
MailMessageSentEventArgs mailMessageSentEventArgs = new MailMessageSentEventArgs(message);
OnSent(mailMessageSentEventArgs);
}
}