多个电子邮件发送到单个地址,只有一个应该已发送。 AWS SES

时间:2012-06-07 04:08:59

标签: php amazon-web-services

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

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

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

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

我一次又一次检查了我的代码,我无法看到每个地址多次发出请求。

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

为什么!?

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

这是我的剧本的胆量。

http://pastebin.com/TUk7bci8

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

帮助?谢谢。

2 个答案:

答案 0 :(得分:0)

可能你是在循环中构建电子邮件,但忘记清除每个循环上的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,依此类推......

当然,这只是猜测。你根本没有提供任何代码,所以我知道这个问题的真正原因是你的服务器因为没有看到因云而导致的金星/太阳运输而感到沮丧,并因此而让你的生活变得悲惨。

答案 1 :(得分:0)

我仍然不知道它为什么发送多封电子邮件,但我用JavaScript重建了我的代码,对PHP进行了ajax调用,现在它运行正常。 :)没有更多的重复耶!的xD