2011-06-13 119 views
4

我在代码文件中写了下面的代码。但它不起作用... plz帮助我! :)用ASP .NET发送邮件(SMTP)

protected void Button1_Click(object sender, EventArgs e) 
{ 

    MailMessage msgeme = new MailMessage("[email protected]", "[email protected]", "subject", "body"); 
    SmtpClient smtpclient = new SmtpClient("smtp.gmail.com",587); 
    smtpclient.EnableSsl = true; 
    smtpclient.Send(msgeme); 
    smtpclient.Credentials = new NetworkCredential("[email protected]", "password"); 


} 

我试过587和465.它显示SMTP异常处理程序错误。谁能帮助吗?

+0

我不知道是否它的问题的原因,但你不想在发送邮件之前设置凭据? – Chris 2011-06-13 16:28:54

+0

587是正确的端口。 @ Robotsushi也是正确的,你需要在发送之前设置凭证。 – 2011-06-13 16:32:15

+0

检查是否有防火墙或防病毒拦截该端口。 – chris 2011-06-13 16:36:53

回答

2

尝试与不同的枚举添加DeliveryMethod,也凭据,然后派:

MailMessage msgeme = new MailMessage("[email protected]", "[email protected]", "subject", "body"); 
SmtpClient smtpclient = new SmtpClient("smtp.gmail.com",587); 
smtpclient.EnableSsl = true; 
smtpclient.Credentials = new NetworkCredential("[email protected]", "password"); 
smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network; 

smtpclient.Send(msgeme); 
+0

谢谢@Shlomi!有效! – Giri 2011-06-14 01:38:49

3

您需要在调用send方法之前设置您的凭据。 但是,有关该错误的更多信息将有所帮助。

1
MailMessage msgeme = new MailMessage("[email protected]", "[email protected]", "subject", "body"); 
SmtpClient smtpclient = new SmtpClient("smtp.gmail.com",587); 
smtpclient.EnableSsl = true; 
smtpclient.Credentials = new NetworkCredential("[email protected]", "password"); 
smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtpclient.Send(msgeme); 

工作!谢谢