PHP将邮件发送给1到10个收件人

时间:2013-04-02 02:34:42

标签: php

我确信我在这里忽略了一些东西,所有其他邮件脚本都正常工作,除了这个。我有一个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共享托管时不发送超过 短时间内同时发送一封电子邮件(内容相同) 或者它最终被标记为垃圾邮件!

SOLUTION:

正如jmbertucci在下面的帖子中提到的,最简单的解决方案是使用BCC:对于一封电子邮件中的所有收件人。由于我不得不对每封电子邮件进行个性化,因此我注意到如果我包含唯一的字符。进入每个电子邮件的主题行,它也没有问题。所以我的解决方案是将收件人的名字添加到主题行(这使得所有电子邮件都是唯一的),但任何唯一的字符串都应该这样做(如date()等。)

1 个答案:

答案 0 :(得分: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").