2011-05-10 88 views
0
protected void Button1_Click(object sender, EventArgs e) 
{ 
    MailMessage message = new MailMessage() 
    { 
     Subject = "Subject", 
     Body = "Body" 
    }; 
    message.To.Add(new MailAddress("[email protected]", "Some name")); 

    SmtpClient client = new SmtpClient(); 
    client.EnableSsl = true; 
    client.Send(message); 
} 

配置SMTP異常。要求認證?

<configuration> 
    <system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
     <network host="****" defaultCredentials="false" port="587" userName="****" password="****" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
<system.web> 

校正。它現在有效。謝謝Marek

+3

是不是你應該使用Gmail的地址去與Gmail的SMTP服務器設置? – 2011-05-10 16:46:58

+0

我很確定GMail不會允許您從Yahoo地址發送電子郵件。然而,也有很多帖子涉及到這個問題和Gmail(抱歉,我找不到一個足夠容易)。 – 2011-05-10 17:10:22

+0

我將我的電子郵件地址更改爲Gmail。它仍然不會工作。信息錯誤與什麼有關? – 2011-05-10 17:38:00

回答

1

您的問題可能與defaultCredentials設置爲true。嘗試將其設置爲false並重試。另外,你爲什麼再次在代碼中設置你的憑證? Gmail還需要通過SSL(如果我沒記錯的話)郵件發送到端口587.

就在今天,我在我的代碼中實現了gmail smtp。我的設置和代碼:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="MY_GMAIL_EMAIL"> 
     <network defaultCredentials="false" host="smtp.gmail.com" port="587" userName="MY_GMAIL_USERNAME" password="MY_GMAIL_PASSWORD" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 


MailMessage message = new MailMessage() { 
           Subject = "Subject", 
           Body = "Body" 
          }; 
message.To.Add(new MailAddress("[email protected]", "Some name")); 
SmtpClient smtpClient = new SmtpClient(); 
smtpClient.EnableSsl = true; 
smtpClient.Send(message); 
+0

是的,端口25用於電子郵件中繼,[端口587用於SMTP提交](http://mostlygeek.com/tech/smtp-on-port-587/comment-page-1/)。 – voithos 2011-05-10 17:48:15

+0

好吧,我更新了我的整個答案!!! ..沒有例外拋出,但沒有電子郵件發送 – 2011-05-10 18:00:05

+0

你改變你的yahoo電子郵件到Gmail嗎? '' – 2011-05-10 18:00:38