使用 System.Net.Mail 通过谷歌发送 smtp 邮件给我一个超时异常
Posted
技术标签:
【中文标题】使用 System.Net.Mail 通过谷歌发送 smtp 邮件给我一个超时异常【英文标题】:using System.Net.Mail To send smtp mail via google gets me a time out exception 【发布时间】:2011-02-08 18:47:48 【问题描述】:我正在尝试通过 google 使用 smtp 身份验证发送电子邮件,但我经常收到超时错误,不知道它可能来自以下代码,它不是我的防火墙或我的 isp 阻止 smtp 端口,所以它很可能是代码:
MailMessage msg = new MailMessage();
String BodyMsg;
BodyMsg = "Hey " + TxtBoxUsername.Text + "@" + "Welcome to Tiamo your username and password are:@Username: "
+ TxtBoxUsername.Text + "@Password: " + PasswordString + "@You have succesffully registered, you can now login."
+ "@Thank You@Tiamo Team";
BodyMsg = BodyMsg.Replace("@", System.Environment.NewLine);
msg.To.Add(new MailAddress(TxtBoxEmail.Text));
msg.From = new MailAddress("someemail@emailme.com");
msg.Subject = "Re: Welcome to Tiamo";
msg.Body = BodyMsg;
SmtpClient client = new SmtpClient() ;
client.EnableSsl = true;
client.Send(msg);
这是我的 web.config 电子邮件 smtp 设置:
<system.net>
<mailSettings>
<smtp from="someemail@myemail.com">
<network host="smtp.gmail.com" port="465" userName="someemail@myemail.com" password="MyLovelyPassword" defaultCredentials="true"/>
</smtp>
</mailSettings>
</system.net>
【问题讨论】:
【参考方案1】:我害怕谷歌使用另一个端口 -> 587 或者至少他们在configure-gmail-access-in-outlook-help-website 上是这么说的
【讨论】:
是的,这行得通:SMTP 服务器需要安全连接,或者客户端未通过身份验证。知道我的谷歌凭据是正确的 ***.com/questions/704636/… 太酷了,修复了它【参考方案2】:在我的例子中,它是以下代码行的顺序:
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("myaddress@gmail.com", "mypasswordforemail");
看起来合乎逻辑,UseDefaultCredentials=false;应该先走。
问候。
【讨论】:
以上是关于使用 System.Net.Mail 通过谷歌发送 smtp 邮件给我一个超时异常的主要内容,如果未能解决你的问题,请参考以下文章
通过 Exchange Online (Office 365) 使用 System.Net.Mail 发送 SMTP 电子邮件
使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件 [重复]
如何使用 system.net.mail 发送非替代的多个部分