2012-05-22 66 views
6

我有一個問題,當通過此代碼發送一封郵件時,發生錯誤「SMTP服務器需要安全連接或客戶端未通過身份驗證,服務器響應爲: 5.5.1身份驗證要求「SMTP服務器需要安全連接或客戶端未通過身份驗證。服務器響應是:5.5.1需要身份驗證

,我的代碼是:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
{ 

    MailMessage mail = new MailMessage(); 
    mail.To.Add("[email protected]"); 
    mail.From = new MailAddress("[email protected]"); 
    string body = "<table><tr><td>Company Name:</td><td>" + txt_cname.Text + "</td></tr><tr><td>Address With No.:</td><td>" + txt_addwithno.Text + "</td></tr><tr><td>Contact Person:</td><td>" + txt_conperson.Text + "</td></tr><tr><td>Email Id</td><td>" + txt_email.Text + "</td></tr><tr><td>Description</td><td>" + txt_description.Text + "</td></tr></table>"; 
    mail.Body = body; 
    mail.IsBodyHtml = true; 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Host = "smtp.gmail.com"; 
    smtp.Port = 25; 
    smtp.UseDefaultCredentials = true; 
    smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "xyz"); 
    smtp.EnableSsl = true; 
    smtp.Send(mail); 


    txt_cname.Focus(); 
    txt_cname.Text = ""; 
    txt_addwithno.Text = ""; 
    txt_conperson.Text = ""; 
    txt_email.Text = ""; 
    txt_description.Text = ""; 

} 
+0

問題解決了嗎?因爲我有同樣的問題,並試圖修復它.. –

+0

你可能想試試這個:http://stackoverflow.com/a/11513412/676508 –

回答

4

我想你應該設置UseDefaultCredentials爲false,因爲你定義的連接憑據。

將此屬性設置爲真正當此SmtpClient對象應該,如果服務器請求 ,驗證使用當前登錄的用戶的 的默認憑據。

[...]

如果UseDefaultCredentials屬性設置爲,則值 集憑據屬性將用於連接到服務器的憑據時

2

嘗試端口587(它的工作對我來說) 並設置UseDefaultCredentials爲false。 設置這一點,並嘗試發送郵件

+0

您好緬因useDefaultCredentials虛假但不起作用 –

+0

好吧嘗試刪除行UseDefaultCredentials或暫時註冊它 –

+0

並讓我知道 –

0

端口沒有按」因爲System.Net.Mail不支持隱式SSL,換句話說它完全忽略了「Port」參數。

0

我試圖通過SQL Server 2012數據庫郵件進行設置,並得到相同的消息。

即使在使用特定於應用程序的密碼之後,我仍然無法使用我的主要g-mail帳戶使用雙重身份驗證。我結束了嘗試我的輔助帳戶,它沒有雙重身份驗證,並立即工作。因此,對於任何使用上述解決方案之一無法正常工作的人,請使用標準身份驗證郵件帳戶進行嘗試。

相關問題