我使用此代码使用C#.Net发送电子邮件 但它在运行时会产生错误。守则是:
MailMessage MyMailMessage = new MailMessage("example@gmail.com", "example@gmail.com",
"write your subject Here ", "Hi,This is the test message ");
MyMailMessage.IsBodyHtml = false;
NetworkCredential mailAuthentication = new NetworkCredential("example@gmail.com","xxxxxxxx");
SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
mailClient.EnableSsl = true;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = mailAuthentication;
mailClient.Send(MyMailMessage);
添加我的gmail用户名和密码并运行代码后,
会发生异常mailClient.Send(MyMailMessage);
带有消息
Failure sending mail.
我也尝试过端口25,但问题仍然存在。
除了Visual Studio和.Net Frameworks之外还有其他什么需要吗? 我有.Net框架的所有版本。
请帮助我!
答案 0 :(得分:4)
这些是我用于从GMail发送电子邮件的设置,将它们放在您的web.config中,然后您只需使用new SmtpClient().Send(msg);
发送邮件。如果您从应用程序中的多个位置发送邮件,这将非常方便。它还允许您更改邮件配置,而无需重新编译应用程序
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" >
<network host="smtp.gmail.com" port="587" userName="an-email@gmail.com" password="********" enableSsl="true" defaultCredentials="false" />
</smtp>
</mailSettings>
</system.net>
</configuration>
编辑:由于您的web.config中已经有configuration
元素,请务必仅复制/粘贴system.net
元素,我通常直接将其放入低于system.web
答案 1 :(得分:2)
尝试以下方法,
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(<type your email address>, <type your password>)
};
using (var message = new MailMessage(<type your email address>, toAddress)
{
Subject = <subject>,
Body = <body>
})
{
smtp.Send(message);
}
答案 2 :(得分:1)
Gmail SSL端口为465,如此处所示...... http://support.google.com/mail/bin/answer.py?hl=en&answer=13287
答案 3 :(得分:0)
https://stackoverflow.com/a/489594/707000
“上述答案不起作用。您必须设置”DeliveryMethod = SmtpDeliveryMethod.Network“,否则它将返回”客户端未经过身份验证“错误。此外,最好还是暂停。”
答案 4 :(得分:0)
快速搜索显示大多数示例未明确设置mailClient.UseDefaultCredentials = false;
尝试删除此行并查看其是否有效。
在我看到的例子中,他们使用了端口587和25。