0

我确信我在这里忽略了一些东西,除了这个之外,所有其他邮件脚本都运行良好。我有一个 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() 等)

4

1 回答 1

0

您是否尝试检查您的邮件服务器是否正确配置或像此示例一样配置它

// Please specify your Mail Server - Example: mail.example.com.
ini_set("SMTP","mail.example.com");

// Please specify an SMTP Number 25 and 8889 are valid SMTP Ports.
ini_set("smtp_port","25");

// Please specify the return address to use
ini_set('sendmail_from', 'example@YourDomain.com')
;

或者检查你的 php.ini 文件。这是一个示例配置。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
于 2013-04-02T03:01:08.680 回答