使用Amazon EC2实例从smtp gmail服务器发送电子邮件

4
我有一个用于业务的gmail邮箱,想要使用它向我的客户发送邮件。我正在使用smtp.gmail.com从asp.net mvc应用程序发送邮件,在本地主机上运行良好。但是当我将代码部署到Amazon EC2时,该功能出现故障。我搜索并发现EC2 IP地址被Google列入黑名单。我应该如何解决这个问题?我看到有一种方法是使用Amazon SES,但是可以有人告诉我它是如何工作的吗?它只是一个验证策略执行事项吗?它是否支持从所述gmail帐户发送电子邮件?是否有其他解决办法? 编辑1:如建议所示,我已联系Amazon以提供生产访问权限。这正在处理中。
与此同时,我发现我能够从我的应用程序发送邮件。这些是我的设置 -
WebMail.SmtpServer = "smtp.gmail.com";
WebMail.SmtpPort = 587;
WebMail.EnableSsl = true;
WebMail.UserName = "me@example.com";
WebMail.From = "me@example.com";
WebMail.Password = "MyPassword";
WebMail.SmtpUseDefaultCredentials = false;

为什么突然它能正常工作了?这是间歇性的吗?还是我可以继续使用它?

2个回答

8
SES是解决这个问题的方案,好处是,除非您发送了成千上万封电子邮件,否则它只会花费您几分钱-它将允许您发送电子邮件,并使其来自(或看起来来自)您的gmail帐户。
第一步是向SES验证您拥有/控制要发送的电子邮件地址-可以通过单击他们发送到该地址的电子邮件中的链接或添加一些TXT条目到您的DNS设置来完成。如果您控制该域,我更喜欢使用DNS方法,以便我可以验证用于发送电子邮件的整个域,而不仅仅是一个帐户-然后您可以像“sales@mydomain.com”、“billing@mydomain.com”等发送邮件,无需逐个验证每个电子邮件地址。
一旦您的帐户得到验证,使用SMTP选项从SES发送电子邮件与通过任何其他SMTP服务器发送电子邮件完全相同-使用amazon的SMTP服务器名称、用户名和密码,然后就可以开始了。
非常简单、非常便宜,电子邮件发送非常快。
请注意,默认情况下有限制-我认为默认情况下是5/秒和10,000/月-但如果您有合法的需要,这可以增加。
此外,一旦您的帐户设置了SES,您不仅可以从EC2实例发送电子邮件,还可以在任何地方使用它-例如我的outlook电子邮件、我的mac和我的iphone都将SES用作我的SMTP提供程序。

好的,我现在在控制台上,它显示每24小时有200封电子邮件的限额和最大速率为每秒1封。我需要每天发送至少500封电子邮件,并且最大速率也应该提高。我需要生产访问权限吗?还是有其他方法可以增加限制?此外,Gmail是否会因为发送限制而引起任何问题? - Sam
那个200的限制只适用于未经验证/测试的账户,当您获得生产访问权限时,限制会提高。 - E.J. Brennan
抱歉,SES并不是唯一的解决方案。对于许多用途来说,使用Gmail SMTP是完全可以的,并且它确实有效。当处于沙盒内时,SES在收件人方面会遇到问题 - 除非您升级到付费版本... - user1597002
你不能正常地进行测试 - 你必须先验证所有的电子邮件 - 这很愚蠢且过于限制。希望亚马逊能够解决这个问题。 - user1597002
基本上SES会抛出消息被拒绝的错误(我认为是553错误代码)。 - user1597002
显示剩余5条评论

-1

我实际上能够使用EC2实例发送电子邮件。尝试将您的SMTP服务器编辑为ssl://smtp.gmail.com


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接