我正在尝试使用C#(System.Net.Mail / Framework 4)通过Google Apps / Gmail发送基本电子邮件,但我遇到了麻烦。
我收到以下异常:“操作已超时。”
我的代码如下:
//Create the mail message
MailMessage mail = new MailMessage();
//Set the addresses
mail.From = new MailAddress("myemail@gmail.com", "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="myemail@gmail.com" deliveryMethod="Network">
<network host="smtp.gmail.com"
userName="myemail@gmail.com"
password="password"
port="587" />
</smtp>
在我的故障排除过程中,我尝试过:
我可以通过GMail界面为我的两个电子邮件帐户发送和接收电子邮件。我也试过问题#757987中提供的设置和解决方案无济于事。
答案 0 :(得分:1)
您的代码看起来很好。你说你试过Telneting。你真的能通过telnet发送电子邮件吗?
您可以尝试删除
from="myemail@gmail.com" deliveryMethod="Network"
来自你的smtp标签,因为它们对你正在做的事情不是必需的。
修改强>
Telnet通常允许您连接到smtp服务器并发送16(?)字节的数据,然后才能将您解雇。如果您没有收到these之类的回复,那么很可能就是这种情况。
尝试打开防火墙上的端口587,看看是否可以通过telnet(EHLO,ECHO等)实际与smtp服务器进行交互。