我们的公司电子邮件提供商是 Gmail。
我希望能够通过smtp.gmail.com
ASP.NET 发送邮件。我已经成功地做到了这一点 - 并且它的好处是所有已发送邮件都出现在 gmail 中正确的已发送邮件文件夹中。但是,连接到 可能需要长达 2-3 秒的时间smtp.gmail.com
。有时它甚至会完全失败。由于这是 ASP.NET 应用程序,我需要能够可靠地发送电子邮件。我不想去创建自己的电子邮件守护程序 - 我只想依赖 SMTP。
我尝试过在 IIS6 上使用虚拟 SMTP 服务器,但无法使其工作。活动状态current session
最多显示一分钟,然后消失。
我需要使用类似的东西吗发送邮件到做这个- 或者其他一些可以让我更好地控制的免费 SMTP 中继?我甚至找到了一个名为“Gmail SMTP 中继'-我们使用的托管服务器有 已安装 - 它有自己的 SMTP 服务器。
我更喜欢图形化的东西 - 最重要的是,我更喜欢 Microsoft SMTP 服务器,因为我已经安装了它。
答案1
我为此奋斗了几个星期。以下是我在使用 SMTP 网关发送电子邮件的 3 个 ASP.NET 网站上使用的设置:
地址:smtp.gmail.com 端口:587
1) 端口非常重要。您可能需要在 SMTP 服务器中输入 smtp.gmail.com:587 之类的端口。我已经多年没有接触过 Microsoft SMTP 了,所以我记不清设置屏幕是什么样子的。
2)确保启用SSL对于 SMTP,因为 gmail 需要它。
3)SMTP 身份验证应设置为基本的。
4) 确保你使用真实的电子邮件而不是电子邮件别名进行身份验证。这个给我带来了很多麻烦。
这就是我让它工作的方法。
答案2
在这里找到了我所需要的解释(使用 IIS 时):
我正在使用此 C# 代码发送邮件
var client = new SmtpClient("127.0.0.1", 587);
client.EnableSsl = false;
注意:我的 C# 应用程序和本地 SMTP 服务器之间的通信未加密(因此 EnableSsl=false) - 但我的 SMTP 服务器和 GMAIL 之间的通信是加密(更多信息请参阅链接的文档)。
重要提示:如果您使用 Microsoft SMTP 客户端来中继邮件,请确保“默认 SMTP 虚拟服务器 > 域”列表中没有任何域。如果是这样,任何发送到这些域的电子邮件最终都会进入- 这可能不是您在这种情况下想要的。在遇到外发邮件实际上没有发出的问题后,C:\Inetpub\mailroot\Drop
我刚刚将其重命名mydomain.com
为(字面意思) 。example.com