【发布时间】:2011-07-18 20:12:21
【问题描述】:
我希望我的 ASP.NET MVC 应用程序向网站用户发送一些标准信件。出于测试目的,我没有本地 SMTP 服务器,而且我的提供商也没有我所知道的。所以我必须使用像 GMail 的 SMTP 这样的公共服务。
如何使用smtp.gmail.com 和我的GMail 帐户发送电子邮件?如果我的电子邮件是 drastomail@gmail.com 并且我的密码是 password,我到底应该把什么放到 Web.config 和 whot 上?
谢谢
编辑
当我尝试以下演示程序时:
class Program {
static void Main(string[] args) {
var client = new SmtpClient("smtp.gmail.com", 587) {
Credentials = new NetworkCredential("puzzlehunters@gmail.com", "puzzlehunters111"),
EnableSsl = true
};
client.Send("puzzlehunters@gmail.com", "puzzlehunters@gmail.com", "test", "testbody");
Console.WriteLine("Sent");
Console.ReadLine();
}
}
异常失败。大多数内部异常都带有此消息:
No connection could be made because the target machine actively refused it 209.85.227.109:587
任何所有当前答案(最早 3 个)也给了我同样的例外。我能用它做什么?
【问题讨论】:
-
我很确定 smtp 服务器必须驻留在您的应用程序所在的服务器上。虽然我想有人有一个 API 可以将消息发送到,它会从那里发送消息。
-
@Nick 一点也不。 SMTP 中继可以在任何地方。现在,大多数服务器管理员会将中继限制为本地应用程序,但这是一项配置设置,并不是硬性要求。
-
@Wyatt Barnett,很高兴知道这一点。
-
请查看我对问题的编辑。
-
@p.campbell 在我编辑后不再存在。那里提出的解决方案对我来说会引发异常。
标签: c# asp.net web-config smtp