免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
.net 發(fā)送qq郵件

最近開發(fā)一個(gè)項(xiàng)目,需要給客戶發(fā)送報(bào)告郵件,在開發(fā)中遇到本地調(diào)試發(fā)送郵件一切正常,但當(dāng)部署到服務(wù)器上的時(shí)候,一直返回“發(fā)送失敗”,在此記錄,以免以后采坑

webapi 端代碼:

         /// <summary>        /// 發(fā)送郵件        /// </summary>        /// <param name="fromMail">發(fā)件人郵箱</param>        /// <param name="toMail">收件人郵箱</param>        /// <param name="authorizationCode">發(fā)件人授權(quán)碼</param>        /// <param name="replyTo">收件人回復(fù)郵件默認(rèn)接收地址(不設(shè)置也可以)</param>        /// <param name="ccMail">郵件抄送人</param>        /// <param name="filePath">附件地址</param>        /// <param name="sendPeopleCall">收件人稱呼</param>        /// <param name="collectSampleDate">收樣時(shí)間</param>        /// <returns></returns>        public MsgModel SendMails(string fromMail,List<string> toMail,string authorizationCode,string replyTo, List<string> ccMail,List<string> filePath,string sendPeopleCall,string collectSampleDate)        {                        try            {                //實(shí)例化發(fā)送郵件類                MailMessage mailMessage = new MailMessage();                //郵件的優(yōu)先級(jí) 分為 low normal high 通常用Normal即可                mailMessage.Priority = MailPriority.Normal;                //發(fā)送人郵件地址                mailMessage.From = new MailAddress(fromMail);                //收件人郵件地址 //考慮群發(fā)郵件                foreach(var r in toMail)                {                    mailMessage.To.Add(new MailAddress(r));                }                if (replyTo == "" || replyTo == null)                {                    replyTo = fromMail;                }                //對(duì)方回復(fù)郵件時(shí)默認(rèn)的接收地址(可以不設(shè)置)                //mailMessage.ReplyTo = new MailAddress(replyTo);                if (ccMail != null)                {                    //郵件抄送  支持 群發(fā) 抄送                    foreach (var r in ccMail)                    {                        mailMessage.CC.Add(r);                    }                }                //如果郵件標(biāo)題包含中文,這里要設(shè)置編碼方式 否則會(huì)出現(xiàn)亂碼                mailMessage.SubjectEncoding = Encoding.GetEncoding(936);                //郵件正文是否是Html 格式                mailMessage.IsBodyHtml = true;                //郵件標(biāo)題                mailMessage.Subject = $@" REPORT-{collectSampleDate}";                //郵件內(nèi)容                mailMessage.Body = $@"                                    Dear {sendPeopleCall},                                    ";                mailMessage.Attachments.Clear();                if (filePath != null&&filePath.Count>0)                {                    foreach (var r in filePath)                    {                        var urls = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + r;//獲取項(xiàng)目的絕對(duì)                        //將附件添加到郵件                        mailMessage.Attachments.Add(new Attachment(urls));                        //獲取設(shè)置此電子郵件的發(fā)送通知                        mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;                    }                }                //實(shí)例化 SmtpClient類                SmtpClient client = new SmtpClient();                client.Host = GetClientHost(fromMail);                //使用安全加密連接                client.EnableSsl = true;                client.Port = 587;//默認(rèn)是25 此處設(shè)置成587                //不和請(qǐng)求一塊發(fā)送                client.UseDefaultCredentials = false;                //client.DeliveryMethod = SmtpDeliveryMethod.Network;                //驗(yàn)證發(fā)送人身份(發(fā)件人的郵箱,郵箱里生成的授權(quán)碼)                client.Credentials = new NetworkCredential(fromMail,authorizationCode);                //如果發(fā)送失敗,SMTP 服務(wù)器將發(fā)送 失敗郵件告知fromEmail                 mailMessage.DeliveryNotificationOptions= DeliveryNotificationOptions.OnFailure;                client.Send(mailMessage);                                return new MsgModel                {                    Status = true,                    Msg = "發(fā)送郵件成功" ,                    Data = ""                };            }            catch(Exception ex)            {                return new MsgModel                {                    Status = false,                    Msg = "發(fā)送郵件失?。″e(cuò)誤:" + ex.Message,                    Data=""                };            }                  }
         /// <summary>        /// 根據(jù)發(fā)送郵箱 識(shí)別發(fā)件服務(wù)器地址         /// </summary>        /// <param name="fromEmail"></param>        /// <returns></returns>        public string GetClientHost(string fromEmail)        {            var host = "";            if (fromEmail.Length != 0)            {                var addressStr = fromEmail.Trim().Split(new char[] { '@','.'});                switch (addressStr[1])                {                    case "163":                        host = "smtp.163.com";                        break;                    case "126":                        host = "smtp.126.com";                        break;                    case "qq":                        host = "smtp.qq.com";                        break;                    case "gmail":                        host = "smtp.gmail.com";                        break;                    case "hotmail":                        host = "smtp.live.com";//outlook郵箱                                                      //client.Port = 587;                        break;                    case "foxmail":                        host = "smtp.foxmail.com";                        break;                    case "sina":                        host = "smtp.sina.com.cn";                        break;                    default:                        host = "smtp.exmail.qq.com";//qq企業(yè)郵箱                        break;                }            }            return host;        }

發(fā)送郵箱,以及授權(quán)碼都放在配置文件webconfig 中,這里不展示。

另外:項(xiàng)目是部署到阿里服務(wù)器的,此項(xiàng)目郵件發(fā)送端口是587,因此在阿里服務(wù)器需要設(shè)置允許端口587進(jìn)出。

在此基礎(chǔ)上本地調(diào)試可正常發(fā)送,部署到服務(wù)器上就發(fā)送失敗,經(jīng)過查閱相關(guān)博客,不斷的嘗試其他博客的解決方法,其中一個(gè)博客中說:本地調(diào)試發(fā)送了郵件成功后,tx那邊認(rèn)為你當(dāng)前發(fā)送郵件的地址為常用的郵件發(fā)送地址,再部署到服務(wù)器上的時(shí)候,tx就認(rèn)為你是發(fā)送廣告,就被禁止當(dāng)前地址發(fā)送郵箱,需要解除禁止。禁止一時(shí)半會(huì)不知道咋去解禁,于是嘗試著替換一個(gè)qq郵箱賬號(hào)進(jìn)行發(fā)送郵件,結(jié)果真的是發(fā)送成功了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
發(fā)郵件
Java發(fā)送郵件(圖片、附件、HTML)
c#Asp.Net簡(jiǎn)單實(shí)現(xiàn)發(fā)送電子郵件的功用
用System.Net.Mail發(fā)送郵件
java組件開發(fā)(21)郵件發(fā)送組件mysmtp
.net類庫中發(fā)送電子郵件的方法總結(jié)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服