2
我想通过smtp.gmail.com在我的C#应用程序中发送电子邮件。 我的代码一直运行良好,直到上周,我突然收到一条错误消息。 我允许我的Gmail账户中安全性较低的应用程序,启用IMAP,没有任何更改。使用gmail通过C#发送电子邮件
第一次验证工作正常,我得到“端口打开”。
下面是代码:
using (TcpClient tcpClient = new TcpClient())
{
try
{
tcpClient.Connect("smtp.gmail.com", 587);
MessageBox.Show("Port open");
}
catch (Exception)
{
MessageBox.Show("Port closed");
}
}
SmtpClient smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
UseDefaultCredentials = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword")
};
using (var message = new MailMessage("[email protected]", "[email protected]")
{
Subject = "Test",
Body = "Hi"
})
{
smtp.Send(message);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我得到的错误:
“服务不可用,关闭传输通道
服务器响应为:无法连接到SMTP服务器2A00:1450 :400C:C01 :: 6C(2A00:1450:400C:C01 :: 6C:587),连接错误10061" }
感谢您的帮助
尝试在另一个gmail帐户上检查您的代码,gmail可能会对您的smtp活动做出反应并限制连接 – Vladimir
有时,10061错误是由本地计算机或网络连接上的防火墙或防病毒引起的。 我有一个学校网络问题,无法发送电子邮件,但在家里我可以。 –
你与TcpClient的第一次连接是非常无用的,你为什么不放弃它?我不知道来自同一个IP的多个活动连接的Google策略。假设您的TcpClient连接没有失败,那么您应该检查您的应用程序是否包含在GMail的_Less安全应用程序列表中。同时检查本地问题,本地/域网络策略可能会阻止您的连接。 –