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