概述 从我们的 MVC Web 应用程序中,我们正在发送电子邮件。我们每次发送 2,000 个,每天一次。
我们一次将一封电子邮件发送到 Postmark 以进行处理和交付。
与 Postmark 的连接是通过 Web.Config 中设置的 SMTP 进行的:
<mailSettings>
<smtp deliveryMethod="Network" from="name@domain.com">
<network host="smtp.postmarkapp.com" port="587" enableSsl="true" defaultCredentials="false" userName="username" password="password" />
</smtp>
</mailSettings>
我们在我们的应用程序中使用 Postal 进行电子邮件模板等。
foreach(var user in users)
{
var email = new Postal.Email;
{
EmailTo = user.Email,
Subject = "Subject",
//other email content
};
//Send email
email.Send();
}
我们的 Web 应用程序位于 Azure 上的 Web 应用程序服务中。
处理和发送是使用 Hangfire 在后台方法中完成的,没有自动重试。
问题 每天都有一小部分收件人(确切百分比未知)持续收到这些电子邮件的重复或三次。我们没有注意到接收多个的模式(即它们来自同一个域等)。
在我们的代码中,电子邮件详细信息和内容是在循环中创建的,并且一次触发一个。我们在代码中添加了日志记录,以验证我们真的只为接收重复和三份电子邮件的人创建一封电子邮件。
我们已经与 Postmark 讨论过他们的任何想法。他们说他们不认为是他们。我已经通过 Postmark UI 查看了电子邮件的标题,并且重复的邮件具有唯一的消息 ID。
问题 当在 MVC 应用程序中使用 SMTP 短时间连续触发大量电子邮件时,处理电子邮件的方式是否会发生一些事情?有没有办法记录从应用程序/服务器实际发送的内容?