尝试使用C#发送邮件时出现SMTP异常

时间:2011-09-07 19:05:24

标签: c# .net email smtp system.net.mail

我正在使用以下非常简单的代码,并且一直发送System.Net.Mail.SmtpException邮件失败。这是我的代码:

static void main(string[] args)
{
    MailAddress from = new MailAddress("MyEmail@gmail.com", "Mr. Test");
    MailAddress to = new MailAddress("AnotherEmail@gmail.com", "mr. man");
    MailMessage msg = new MailMessage(from, to);
    msg.Subject = "email";
    msg.Body = "This is email.";
    SmtpClient client = new SmtpClient("smtp.gmail.com");

    client.Send(msg);
}

我之前从未尝试过以编程方式发送电子邮件,因此我感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

您缺少凭据并作为TLS(安全连接)发送:

Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"), 
EnableSsl = true 

更多细节: Sending email through Gmail SMTP server with C#

答案 1 :(得分:2)

我看到给出的代码不正确的第一件事是没有给出用于验证smtp服务器的用户名/密码。

另外,为了更好地了解导致SmtpException的确切原因,请在调试器中捕获异常并查看异常的详细信息。通过这样做,我已经很好地解释了导致SMTP错误的原因。

您可以尝试按照这些说明使用SMTP通过Gmail发送邮件。 http://blogs.msdn.com/b/mariya/archive/2006/06/15/633007.aspx

答案 2 :(得分:2)

Google不希望您使用端口25,他们希望您使用587(ssl)或467.他们还要求您在发送邮件时进行身份验证。