我确信我在这里忽略了一些东西,所有其他邮件脚本都正常工作,除了这个。我有一个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);
}
}
此时我将发布以下内容:
SOLUTION:
正如jmbertucci在下面的帖子中提到的,最简单的解决方案是使用BCC:对于一封电子邮件中的所有收件人。由于我不得不对每封电子邮件进行个性化,因此我注意到如果我包含唯一的字符。进入每个电子邮件的主题行,它也没有问题。所以我的解决方案是将收件人的名字添加到主题行(这使得所有电子邮件都是唯一的),但任何唯一的字符串都应该这样做(如date()等。)
答案 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").