2011-05-10 118 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