public static bool SendMail(string fromEmail, List<string> emailTo, List<string> emailCC, string subjectLine,
string bodyText, bool isHTML, List<string> attachments)
{
HttpContext context = HttpContext.Current;
EMailSettings mailSettings = EMailSettings.GetEMailSettings();
if (String.IsNullOrEmpty(fromEmail)) {
fromEmail = mailSettings.ReturnAddress;
}
if (emailTo != null && emailTo.Any()) {
MailMessage message = new MailMessage {
From = new MailAddress(fromEmail),
Subject = subjectLine,
Body = bodyText,
IsBodyHtml = isHTML
};
message.Headers.Add("X-Computer", Environment.MachineName);
message.Headers.Add("X-Originating-IP", context.Request.ServerVariables["REMOTE_ADDR"].ToString());
message.Headers.Add("X-Application", "Carrotware Web " + CurrentDLLVersion);
message.Headers.Add("User-Agent", "Carrotware Web " + CurrentDLLVersion);
message.Headers.Add("Message-ID", "<" + Guid.NewGuid().ToString().ToLowerInvariant() + "@" + mailSettings.MailDomainName + ">");
foreach (var t in emailTo) {
message.To.Add(new MailAddress(t));
}
if (emailCC != null) {
foreach (var t in emailCC) {
message.CC.Add(new MailAddress(t));
}
}
if (attachments != null) {
foreach (var f in attachments) {
Attachment a = new Attachment(f, MediaTypeNames.Application.Octet);
ContentDisposition disp = a.ContentDisposition;
disp.CreationDate = System.IO.File.GetCreationTime(f);
disp.ModificationDate = System.IO.File.GetLastWriteTime(f);
disp.ReadDate = System.IO.File.GetLastAccessTime(f);
message.Attachments.Add(a);
}
}
SmtpClient client = new SmtpClient();
if (mailSettings.DeliveryMethod == SmtpDeliveryMethod.Network
&& !String.IsNullOrEmpty(mailSettings.MailUserName)
&& !String.IsNullOrEmpty(mailSettings.MailPassword)) {
client.Host = mailSettings.MailDomainName;
client.Credentials = new NetworkCredential(mailSettings.MailUserName, mailSettings.MailPassword);
} else {
client.Credentials = new NetworkCredential();
}
client.Send(message);
}
return true;
}