带有 GMail 的 AWS SES(仅发送)
Posted
技术标签:
【中文标题】带有 GMail 的 AWS SES(仅发送)【英文标题】:AWS SES with GMail (sending only) 【发布时间】:2019-07-05 08:55:34 【问题描述】:我们的企业使用 G Suite 来处理电子邮件。目前,我们有许多使用 .Net Core 代码中的MailKit
发送的自动电子邮件。这一直运行良好,直到昨天我们不得不一次性发送大量电子邮件(大约 600 封)。大约 60 封电子邮件已成功发送,但其余的都失败了,并从 Gmail 返回了类似这样的错误:
4.7.0 Temporary System Problem. Try again later (10). i4sm4226208wrr.17 - gsmtp
我相信是 Gmail 告诉我它已超载:https://***.com/a/39108563/5392786
我猜 Google 对您可以通过这种方式发送的电子邮件数量有限制?
我们的许多基础设施都在 AWS 上,因此我考虑切换到 AWS SES 来处理我们的自动电子邮件。这是一个可行的选择吗?
我仍然希望其他企业能够继续使用 Gmail 作为他们的电子邮件客户端。是否可以将 AWS SES 与 Gmail 并行使用以从代码发送电子邮件(使用 AWS 开发工具包),但保持接收电子邮件不变(即 SES 与接收或处理传入的电子邮件没有任何关系,它当我从代码中告诉它时只发送电子邮件)?
编辑 这是我用来发送电子邮件的代码:
public async Task SendEmail(MimeMessage message)
var certificiate = new X509Certificate2("certificate.p12", "notasecret", X509KeyStorageFlags.Exportable);
var credentials = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer("automatedemails@automatedemails-######.iam.gserviceaccount.com")
Scopes = new[] GmailService.Scope.MailGoogleCom ,
User = ((MailboxAddress)message.From.First()).Address
.FromCertificate(certificiate));
if (!await credentials.RequestAccessTokenAsync(new CancellationToken()))
throw new ApplicationException("Error requesting access token for Gmail authentication");
using (var client = new SmtpClient())
client.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTls);
var oauth2 = new SaslMechanismOAuth2(credentials.User, credentials.Token.AccessToken);
client.Authenticate(oauth2);
await client.SendAsync(message);
client.Disconnect(true);
这是为每封电子邮件运行的。我想知道是不是因为我要为每封电子邮件打开和关闭连接?
【问题讨论】:
【参考方案1】:是的,您可以将 SES 用作附加发件人。除非您专门设置它,否则传入的电子邮件将保持原样并照常运行。
事实上,您甚至可以让一个应用程序使用 gsuite 发送电子邮件,第二个应用程序从 SES 发送电子邮件,并且所有用户仍然使用 gsuite 发送和接收电子邮件,它仍然可以正常工作。
【讨论】:
太好了,感谢您提供的信息!能够同时在不同的应用程序中使用 GSuite 和 SES 将是一个好处,因为这样我就可以逐步迁移我的应用程序,一次一个。您知道对 SES 的更改是否会解决我原来的 Gmail SMTP 过载问题?或者你有关于这个问题的任何补充信息/链接吗? 如果您使用 SES 作为电子邮件服务器之一来处理大量外发电子邮件,它应该会完全绕过 Gmail 的 SMTP 服务器。以上是关于带有 GMail 的 AWS SES(仅发送)的主要内容,如果未能解决你的问题,请参考以下文章
如何将原始电子邮件 (MIME) 从 AWS SES 转换为 Gmail?
如何使用带有 Postfix 的 AWS SES 接收退回的邮件