我确信我在这里忽略了一些东西,除了这个之外,所有其他邮件脚本都运行良好。我有一个 HTML 表单,最多可收集 10 个电子邮件地址。我需要做的就是遍历它们,如果它们被填满,则向收件人发送电子邮件。
$email0 = 'email@email.com';
$email1 = 'some@email1.com';
$email2 = 'some@email2.com';
$email3 = 'some@email3.com';
$email4 = 'some@email4.com';
....... up to 10.
$i=1;
while($i<=10)
{
$temp = 'email'.$i;
if(isset($$temp) && $$temp != '')
{
$subject="some subject";
$body = "email content";
$headers = "From: $email0 \r\n";
$headers .= "Reply-To: $email0 \r\n";
mail($$temp, $subject, $body, $headers);
}
$i++;
}
...好吧,我只是尝试了一种不同的方式。我把所有的电子邮件都塞进了一个数组中并遍历了它。同样的结果,没有收到邮件!!!!我错过了什么?:)
$recipients = array($email1,$email2,$email3,$email4,$email5,$email6,$email7,$email8,$email9,$email10);
foreach($recipients as $value)
{
if($value != '')
{
$subject2="some subject";
$body2 = "some content";
$headers2 = "From: $email0 \r\n";
$headers2 .= "Reply-To: $email0 \r\n";
mail($value, $subject2, $body2, $headers2);
}
}
在这一点上,我将发布以下内容:
- 碰巧我之前的所有尝试都开始进入垃圾邮件箱(几个小时后!)。所以我的怀疑似乎得到了证实:在 GoDaddy 共享主机上,不要在短时间内(具有相同内容)同时发送超过一封电子邮件,否则最终会被标记为垃圾邮件!
解决方案:
正如下面帖子中的 jmbertucci 所建议的那样,最简单的解决方案是使用密件抄送:一封电子邮件中的所有收件人。由于我必须个性化每封电子邮件,我注意到如果我包含唯一的字符。进入每封电子邮件的主题行,它也没有问题。所以我的解决方案是将收件人的姓名添加到主题行中(这使得所有电子邮件都是唯一的)但任何唯一的字符串都应该这样做(如 date() 等)