예제 #1
0
 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;
 }
예제 #2
0
 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);
     }
 }
예제 #3
0
        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);
            }
        }