我正在使用以下非常简单的代码,并且一直发送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);
}
我之前从未尝试过以编程方式发送电子邮件,因此我感谢您的帮助。
答案 0 :(得分:5)
您缺少凭据并作为TLS(安全连接)发送:
Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
EnableSsl = true
答案 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.他们还要求您在发送邮件时进行身份验证。