如何通过PHP脚本发送邮件?

时间:2009-06-29 15:05:15

标签: php email

我如何通过PHP脚本发送邮件? 我想做这样的事情:

for($k=0;$k<=$x->length-1;$k++)
{
    for($l=0;$l<=$j-1;$l++)
    {
        if($y->item($k)->nodeValue==$JobNoArr[$l] && $AcceptanceDateArr[$l]=='0000-00-00')
        {   
            //echo  $v->item($k)->nodeValue ;
            $email = $v->item($k)->nodeValue . ",";
            $to = $email;
            $subject = "My subject";
            $txt = "Hello world!";
            $headers = "From: webmaster@example.com" . "\r\n" .
            "CC: someother.valid@email.adr";
            mail($to,$subject,$txt,$headers);
        }
    }
}

请在这个问题上帮助我。

最佳

Zeeshan

8 个答案:

答案 0 :(得分:16)

我强烈建议不要使用PHP的mail()函数发送邮件。撰写有效的电子邮件并成功发送它们比初看起来更棘手。有编码,将各部分放在一起,验证&amp;卫生,错误报告(超过bool mail(...)),支持身份验证等等...... mail()功能不提供任何此类功能。

尝试SwiftMailer或类似内容。您可以将其配置为使用PHP的mail()函数等等。我强烈推荐它。

答案 1 :(得分:6)

你一下子尝试了太多。尝试一步一步。首先发送一个简单的电子邮件,其中包含硬编码参数以使其正常工作,然后在嵌套循环的上下文中对其进行故障排除。

答案 2 :(得分:5)

问题是邮件功能非常不可靠,尤其是在发送大量电子邮件时。

我建议查看PHPmailer库(使用直接SMTP连接): http://phpmailer.codeworxtech.com/

答案 3 :(得分:4)

代码(最内部的块)看起来正确。确保您的环境设置正确。 http://ca3.php.net/manual/en/mail.setup.php

答案 4 :(得分:3)

首先做

echo $result = mail($to,$subject,$txt,$headers);

看看你得到了什么,错误?

我建议使用像phpMailer这样的类

为什么你在行的末尾有逗号?

$email = $v->item($k)->nodeValue . ",";

你每次都发一封邮件。

答案 5 :(得分:2)

php-s邮件功能使用sendmail作为MTA,所以如果有些邮件通过而有些邮件不通过,我会查看sendmail的日志以查找错误。

答案 6 :(得分:1)

如果您在共享的网络主机或家用计算机上,则服务器的主域名将是

server.your-isp-or-host.com

垃圾邮件过滤器会看到声称来自

的电子邮件
yourdomain.com

当它真的来自第一个地址时,然后将其删除。

这可以解释错误的命中与错过。

如果您使用专用服务器,或者通过正确设置DNS指向家庭计算机的静态IP,则上述操作不适用。

答案 7 :(得分:1)

如果它能够向gmail发送电子邮件,那么它也可以正常发送电子邮件给雅虎

您可能会发现问题不在于发送电子邮件,但也许雅虎会将其标记为垃圾邮件或在网关处阻止它们

我注意到你在电子邮件地址的末尾附加一个逗号,这是什么意思?

可能还有其他问题,你的循环是否正确,是否涵盖了你所期望的所有情况。

你发送了数千封电子邮件吗?您的mta可以处理将电子邮件放入队列的速率吗

你的脚本是否达到max_execution时间并停止?

相关问题