C#送信メール(アリエンタープライズメールボックスの例は、サーバおよびポート構成の各タイプを含む)

3437 ワード

本文はC#を通じて(通って)メールを送信することを说明します:1.私のここは使うアリ企业のメールボックスで、その他の163とQQのメールボックスについて、サーバーのアドレスとポートの问题を修正します2.送信の失败の问题について、コードの问题を排除した后で、自分が使うメールボックスの口座が授権を开いたかどうかを见ることができて、特に163とQQのメールボックス、授権を开きます
 
ここではアリ企業メールボックスの各サーバとポートの構成について説明します:1.POPサーバ:アドレス:pop 3.mxhichina.comポート:110暗号化ポート:995
2.IMAPサーバー:アドレス:imap.mxhichina.comポート:143暗号化ポート:993備考:メールを受信してこのプロトコルを使用することを推薦して、結局POP 3はメールボックスサーバーと対話することができなくて、メールの状態を更新することができません.
SMTPサーバー:アドレス:smtp.mxhichina.comポート:25暗号化ポート:465
 
直接コアコード:
        /// 
        ///       ,             ,        
        /// 
        /// 
        public static void SendEmail(EmailInfo requestModel)
        {
            if (requestModel.To.IsNullOrEmpty()) throw new LevoxCpcException("         !");
            if (string.IsNullOrWhiteSpace(requestModel.Subject)) throw new LevoxCpcException("        !");
            if (string.IsNullOrWhiteSpace(requestModel.Body) && requestModel.Attachments.IsNullOrEmpty()) throw new LevoxCpcException("          !");

            var emailSettingInfo = GetSendEmailSenderInfo();
            try
            {
                //         
                var client = new SmtpClient(emailSettingInfo.Host, emailSettingInfo.Port)
                {
                    //    SSL,   false,  true,      
                    EnableSsl = false,
                    //        (UseDefaultCredentials      Credentials   ,     )
                    UseDefaultCredentials = true,
                    //        
                    Credentials = new NetworkCredential(emailSettingInfo.Account, emailSettingInfo.Password)
                };
                //        
                var email = new MailMessage()
                {
                    //          
                    From = new MailAddress(emailSettingInfo.Account, emailSettingInfo.DisplayName),
                    IsBodyHtml = true,//   html  
                    Subject = requestModel.Subject,//    
                    BodyEncoding = Encoding.Default,//      
                    Body = requestModel.Body,//    
                    Priority = MailPriority.High//     
                };
                //   (    )
                requestModel.To.Distinct().LingbugFor(r => email.To.Add(r));
                //   (    )
                if (!requestModel.CC.IsNullOrEmpty()) requestModel.CC.Distinct().LingbugFor(r => email.CC.Add(r));
                //  (    )
                if (!requestModel.Attachments.IsNullOrEmpty()) requestModel.Attachments.Distinct().LingbugFor(r => email.Attachments.Add(new Attachment(r)));
                //      (         )
                client.SendCompleted += (sender, e) =>
                {
                    if (e.Error == null)
                    {
                        LogTestService.Info("      ", requestModel.SerializeObject());
                    }
                    else
                    {
                        LogTestService.Info("      :" + e.Error.Message, e.Error.SerializeObject());
                    }
                };
                //    
                client.SendMailAsync(email);
            }
            catch (Exception ex)
            {
                LogTestService.Info("        :" + ex.Message, ex.SerializeObject());
            }
        }

 
 
Ending~