通过谷歌应用程序发送电子邮件在C#
我想用C#和我有麻烦这样做(4 System.Net.Mail /框架)通过谷歌应用程序/ Gmail发送一个基本的电子邮件。通过谷歌应用程序发送电子邮件在C#
我收到以下异常:“操作超时”。
我的代码如下:
//Create the mail message
MailMessage mail = new MailMessage();
//Set the addresses
mail.From = new MailAddress("[email protected]", "My Name");
mail.To.Add(Email);
//Set the subject and bodycontent
mail.Subject = "Email Testing";
mail.Body = "This is the body of the email";
//Send the message using the SmtpClient
SmtpClient smtp = new SmtpClient();
smtp.EnableSsl = true;
smtp.Send(mail);
我的web.config具有以下设置:
<smtp from="[email protected]" deliveryMethod="Network">
<network host="smtp.gmail.com"
userName="[email protected]"
password="password"
port="587" />
</smtp>
在我的疑难解答我曾尝试:
- 用我个人的Gmail地址以及来自通过Google Apps托管的域中的另一个域名。
- 使用端口25,465,和587
- 硬编码在C#代码的配置设置,而不是使用在web.config
- 发送和telnet命令直接登录从多个网络位置,以确保在防火墙/ ISP不阻止它
- 确保在GMail设置中启用了POP(根据谷歌,这应该打开使用SMTP发送的能力)
- 更改发送和回复地址以确保它们与帐户匹配(显然是GMail必需)。
我可以通过GMail界面为我的两个电子邮件帐户发送和接收电子邮件。我也尝试了问题#757987中提供的设置和解决方案无济于事。
您的代码看起来不错。你说你尝试过Telneting。你真的能够通过telnet发送邮件吗?
你可以尝试从您的SMTP标签移除
from="[email protected]" deliveryMethod="Network"
因为它们没有必要为自己在做什么。
编辑:
的Telnet通常会允许您连接到SMTP服务器和发送数据的16个字节前,将你踢出去(?)。如果您没有收到类似these的回复,那很可能是这种情况。
在防火墙上尝试开放端口587,看看你能实际上通过telnet SMTP服务器(EHLO,ECHO等)进行交互。
谢谢你的建议。我试图从smtp标签中删除“from”和“deliverymethod”,它仍然超时。 当我提到我试着在我最初的问题telnet命令......我尝试连接,它连接的,但是当我尝试使用我找到的指令发送电子邮件在“http://www.wikihow.com/Send-Email “使用Telnet”会在第一条命令后将我踢出去。 – NateReid 2010-03-31 15:08:26
听起来像你的telnet实际上并没有连接,在这种情况下,你可能有网络问题。尝试在你的防火墙 – Joel 2010-03-31 15:32:07
从谷歌上的故障排除电子邮件开放的587端口这就是我想,但根据该http://mail.google.com/support/bin/answer.py?hl=en&answer=78775页面(特别是最后一个项目符号点),我已连接。 – NateReid 2010-03-31 16:06:33
有没有人有这与最近的GMail工作?我认为Google最近改变了一些安全设置,这导致了我的症状。 – NateReid 2010-04-09 03:19:10