将多篇电子邮件发送到单个地址,而此时只应发送一个地址


Multipul emails sent to single address, when only one should have been sent. AWS SES

Im 使用 Amazon SES Mailer (链接: https://github.com/geoloqi/Amazon-SES-Mailer-PHP) 和 PHP 中的简单循环向列表中的每个电子邮件地址发送电子邮件。

为了确保电子邮件发出,我将自己的电子邮件地址附加到每个列表中。(多个列表不会一次发送)

每个列表都有一个唯一的电子邮件。

偶尔每隔几个列表(其中没有重复的电子邮件地址),我最多会收到 4 份同一封电子邮件的副本。我只能假设我的客户也收到了这些重复的电子邮件。

一次又一次地检查了我的代码,我看不到对每个地址多次发出请求的任何方式。

第一次注意到这一点时,我向大约 200 个地址的列表发送了一封电子邮件,根据 Amazon SES 管理控制台,它发送了 3000 多封电子邮件。

为什么!?

我在 AWS SES 论坛上看到了有关此问题的其他帖子,但所有这些帖子都没有回复。所以我想我会在这里尝试。

这是我剧本的胆量。

http://pastebin.com/TUk7bci8

编辑:我检查了电子邮件的标题,每封电子邮件都有不同的ID,我听说这意味着我的代码以某种方式发送了重复项,但我无法弄清楚如何发送。

帮助?谢谢。

可能您正在循环构建电子邮件,但忘记清除每个循环中的To:地址,因此每个循环都会发送给您已经发送给的每个人,以及您在当前迭代中获取的任何"新"人员,因此:

while($row = fetch_row_from_db()) {
   $to .= $row['email'];  <---concatenating, not resetting.
   send_email($to, $message);
}

因此,对于您获取的第一个结果,$to是 a@b.c .在下一次迭代中,它是 a@b.c d@e.f ,然后是 a@b.c d@e.f g@h.i 等等......

当然,这只是一个猜测。你根本没有提供任何代码,所以就我所知,问题实际上是因为你的服务器因云层而无法看到金星/太阳凌日而感到沮丧,并因此让你的生活变得悲惨。

我仍然不知道为什么它要发送多pul电子邮件,但我用JavaScript重建了我的代码,对PHP进行了axjax调用,现在它工作正常。 :)不再重复耶!xD

相关文章: