一尘不染

通过C#.Net在所有端口上出现GMail SMTP错误

c#

我一直在努力寻找答案,但到目前为止却惨败。我最近的尝试是从此处的堆栈代码中删除的: 使用C#通过Gmail
SMTP服务器发送电子邮件
,但是我尝试了在堆栈中和其他位置可以找到的所有语法。我的代码当前是:

var client = new SmtpClient("smtp.gmail.com", 587)
{
    Credentials = new NetworkCredential("me@gmail.com", "mypass"),
    EnableSsl = true
};

client.Send("me@gmail.com","me@gmail.com","Test", "test message");

运行该代码使我立即遇到异常“发送邮件失败”,它带有一个内部表达式“无法连接到远程服务器”。

如果我将端口更改为465(如gmail docs所建议),则每次都会超时。

我读过465不是一个很好的端口,所以我想知道587会带来什么问题,导致我无法连接。我的用户和密码正确。我读到我必须在gmail帐户上设置POP服务,所以我做到了。徒劳无功。

我本来是想为我的品牌GMail帐户使用此功能,但是遇到同样的问题(我 认为使用 常规的gmail帐户会更容易…),到目前为止,情况并非如此。


阅读 204

收藏
2020-05-19

共1个答案

一尘不染

我尝试了您的代码,它完全可以在端口587上运行,但不能在465上运行。

你检查过防火墙了吗?从命令行“ Telnet smtp.gmail.com 587”尝试,如果返回“ 220 mx.google.com ESMTP
....”,则说明该端口已打开。如果没有,那会阻碍您的通话。

丹尼尔

2020-05-19