記一次郵件推送的坑,c#基於smtp使用騰訊企業郵箱發送郵件老是失敗的緣由

今天在弄企業郵箱推送的東西,原版代碼是這樣的服務器

public void SendEmail(string title, string content)
        {
            try
            {
                MailMessage mailMsg = new MailMessage();
                mailMsg.To.Add(new MailAddress(ToEmails));
                mailMsg.From = new MailAddress(FromEmail);
                // 郵件主題
                mailMsg.Subject = title;
                // 郵件正文內容
                mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html));
                // 添加附件
                //string file = "D:\\1.txt";
                //Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
                //mailMsg.Attachments.Add(data);
                //郵件推送的SMTP地址和端口
                SmtpClient smtpClient = new SmtpClient(EmailHost, EmailPort);
                //SmtpClient smtpClient = new SmtpClient(EmailHost);
                // 使用SMTP用戶名和密碼進行驗證
                System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPW);
                smtpClient.EnableSsl = true;
                //smtpClient.Timeout = 10000;//超時
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.UseDefaultCredentials = false;
                smtpClient.Credentials = credentials;
                smtpClient.Send(mailMsg);
            }
            catch (Exception ex)
            {

                throw;
            }

        }

按照騰訊企業郵箱給的文檔,我設置好郵箱帳號、密碼、smtp服務器、端口號以後開始測試,發現老是報錯,當時騰訊企業郵箱的官方提示是這樣的測試

能夠看到,這裏給的端口號是465,(這裏不知道要不要罵娘了)spa

而後我斷斷續續的測試了一下午,發現怎麼都發不出郵件,按理不會啊,就這麼幾行代碼的事情,因而我試着刪除一些配置,讓程序按照本身的默認值來運行,因而我刪除了端口號的配置,代碼以下:code

/// <summary>
        /// 
        /// </summary>
        /// <param name="UserName"></param>
        /// <param name="Money"></param>
        public void SendEmail(string title, string content)
        {
            try
            {
                MailMessage mailMsg = new MailMessage();
                mailMsg.To.Add(new MailAddress(ToEmails));
                mailMsg.From = new MailAddress(FromEmail);
                // 郵件主題
                mailMsg.Subject = title;
                // 郵件正文內容
                mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html));
                // 添加附件
                //string file = "D:\\1.txt";
                //Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
                //mailMsg.Attachments.Add(data);
                //郵件推送的SMTP地址和端口
                //SmtpClient smtpClient = new SmtpClient(EmailHost, EmailPort);
                SmtpClient smtpClient = new SmtpClient(EmailHost);
                // 使用SMTP用戶名和密碼進行驗證
                System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPW);
                smtpClient.EnableSsl = true;
                //smtpClient.Timeout = 10000;//超時
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.UseDefaultCredentials = false;
                smtpClient.Credentials = credentials;
                smtpClient.Send(mailMsg);
            }
            catch (Exception ex)
            {

                throw;
            }

        }

結果就發出去了,我是真的日了狗,郵件發送失敗的提示的提示也沒有具體信息,先記錄一下,之後使用這些企業郵箱實現郵件推送,最好不要用他們提供的端口號,感受只須要有發信服務器就好了。blog

相關文章
相關標籤/搜索