碼迷,mamicode.com
首頁 > Web開發 > 詳細

.Net使用163smtp發送郵件時錯誤:郵箱不可用. has no permission解決方法

時間:2016-07-04 18:30:23      閱讀:80793      評論:0      收藏:0      [點我收藏+]

標簽:

C#實現簡單郵件發送代碼如下

        public static void SendAsync(string emailTo, string subject, string mailBody)
        {
            var msg = new MailMessage();
            msg.To.Add(emailTo);
            //
            msg.From = new MailAddress(_userNameForEmail, "顯示的發件人名稱", System.Text.Encoding.UTF8);
           msg.Subject = subject;//郵件標題 
            msg.SubjectEncoding = System.Text.Encoding.UTF8;
            msg.Body = mailBody;//郵件內容 
            msg.BodyEncoding = System.Text.Encoding.UTF8;
            msg.IsBodyHtml = false;
            msg.Priority = MailPriority.High;//郵件優先級 
            //
            var client = new SmtpClient();
            client.UseDefaultCredentials = false;
            client.Credentials = new NetworkCredential(_userNameForEmail, _passwordForEmail);
            //
            client.Host = _smtpHost;
            try
            {
                //簡單一點兒可以client.Send(msg); 
                client.Send(msg);
                //Task.Factory.StartNew(() =>
                //{
                //    client.Send(msg);
                //});
                //client.SendAsync(msg, userState);
                
            }
            catch (SmtpException ex)
            {
         log.Error(ex);
throw ex; } }

當傳入發送郵箱正確的用戶名和密碼時,總是收到到:郵箱不可用. has no permission 這樣的錯誤,英文錯誤為:Mailbox unavailable. The server response was: User has no permission。

其實我們用.Net發送郵件時相當于自定義客戶端根據用戶名和密碼進行登錄,然后使用SMTP服務發送郵件。但新注冊的163郵件默認是不開啟客戶端授權驗證的(對自定的郵箱大師客戶端默認開啟),

因此登錄總是會被拒絕,驗證沒有權限。解決辦法是進入163郵箱,進入郵箱中心——客戶端授權密碼,選擇開啟即可,如下截圖

 

技術分享

設置完畢后,在代碼中用使用客戶端授權密碼代替原始的郵箱密碼,這樣就可以正確的發送郵件了。

 

.Net使用163smtp發送郵件時錯誤:郵箱不可用. has no permission解決方法

標簽:

原文地址:http://www.cnblogs.com/oneheart/p/5641215.html

(3)
(5)
   
舉報
評論 一句話評論(0
0條  
登錄后才能評論!
? 2014 mamicode.com 版權所有 京ICP備13008772號-2
迷上了代碼!
公式规律下期单双