public static MailInfo GetMainInfo(string key) { ConfigurationInfo configurationInfo = GetInstance(key); MailInfo mainInfo = new MailInfo() { MailAddressInfo = configurationInfo.AddressInfo, MailServerInfo = configurationInfo.ServerInfo, Subject = configurationInfo.DeflautSubject, EnableSsl = configurationInfo.enableSSL }; return mainInfo; }
private static void FillMessage(MailMessage message, MailInfo mailInfo) { if (!string.IsNullOrEmpty(mailInfo.Subject)) { message.Subject = mailInfo.Subject; } message.IsBodyHtml = mailInfo.IsHtml; message.Body = mailInfo.Body; MailAddressInfo mailAddressInfo = mailInfo.MailAddressInfo; if (mailAddressInfo != null) { if (!string.IsNullOrEmpty(mailAddressInfo.From)) { message.From = new MailAddress(mailAddressInfo.From); } FillAddress(message.To, mailAddressInfo.To); FillAddress(message.CC, mailAddressInfo.CC); FillAddress(message.Bcc, mailAddressInfo.Bcc); } if ((mailInfo.AttachmentList != null) && (mailInfo.AttachmentList.Count > 0)) { foreach (string str in mailInfo.AttachmentList) { message.Attachments.Add(new Attachment(str)); } } if (mailInfo.IsHtml && mailInfo.LinkImgRes) { string body = mailInfo.Body; List<LinkedResource> imgResources = GetImgResources(ref body, mailInfo.ImgDirectory); AlternateView item = AlternateView.CreateAlternateViewFromString(body, mailInfo.Encoding, "text/html"); foreach (LinkedResource resource in imgResources) { item.LinkedResources.Add(resource); } message.AlternateViews.Add(item); } }
public static void Send(MailInfo mailInfo, bool isAsync) { try { using (MailMessage message = new MailMessage()) { MailServerInfo mailServerInfo = mailInfo.MailServerInfo; if ((mailServerInfo == null) || string.IsNullOrEmpty(mailServerInfo.Server)) { LogHelper.Write("[GW.Mail]:Web.config中配置邮件服务器尚未配置,请配置邮件服务器信息,否则无法发生邮件!"); } SmtpClient client = new SmtpClient();//(mailServerInfo.Server, mailServerInfo.Port); client.Host = mailServerInfo.Server; if (mailServerInfo.Port!=0) client.Port = mailServerInfo.Port; client.DeliveryMethod = SmtpDeliveryMethod.Network; if (!string.IsNullOrEmpty(mailServerInfo.UserName) && !string.IsNullOrEmpty(mailServerInfo.Password)) { client.Credentials = new NetworkCredential(mailServerInfo.UserName, mailServerInfo.Password); } else { client.UseDefaultCredentials = true; } client.EnableSsl = mailInfo.EnableSsl; FillMessage(message, mailInfo); //client.ClientCertificates = X509CertificateCollection.X509CertificateEnumerator; client.SendCompleted += new SendCompletedEventHandler(MailManager.SendCompletedCallback); string userToken = "test message1"; if (isAsync) { client.DeliveryMethod = SmtpDeliveryMethod.Network; client.SendAsync(message, userToken); } else { message.IsBodyHtml = true; client.Send(message); } } } catch (Exception ex) { LogHelper.Write("[GW.Mail]:发送邮件失败!", ex); } }