2

我正在使用以下非常简单的代码,但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);
}

我以前从未尝试过以编程方式发送电子邮件,所以我很感激帮助。

4

3 回答 3

5

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

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

More Details here: Sending email through Gmail SMTP server with C#

于 2011-09-07T19:12:00.893 回答
2

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

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

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

于 2011-09-07T19:10:41.300 回答
2

Google does not want you to use port 25, they want you to use 587 (ssl) or 467. They also require that you authenticate when sending mail.

于 2011-09-07T19:14:03.077 回答