发送电子邮件PHP时出错


Error sending email PHP

我在网上找到了一些php代码,并对其进行了一些修改,使其适用于我。这样做的目的是从我的域中的电子邮件向收件人发送我想要的消息。它对我的一些电子邮件起到了作用,但当我将电子邮件发送到我拥有的电子邮件列表时,我在收件箱中收到了一个错误,并显示了以下文本

Title - "Undelivered Mail Returned to Sender"
Message - "
This is the mail system at host gateway06.websitewelcome.com.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
                   The mail system
<wyunnluqxas12@aol.com>: host mailin-04.mx.aol.com[64.12.88.131] said: 550
    5.1.1 <wyunnluqxas12@aol.com>: Recipient address rejected: aol.com (in
    reply to RCPT TO command)"

我用来向收件人发送电子邮件的代码如下所示:

<?php
include("Mail.php"); 
$recipients = $_GET['email'];
$headers["From"]    = ""; 
$headers["To"]      = $recipients; 
$headers["Subject"] = ""; 
$body = ''; 
$params["host"] = ""; 
$params["port"] = "25"; 
$params["auth"] = true; 
$params["username"] = ""; 
$params["password"] = ""; 
// Create the mail object using the Mail::factory method 
$mail_object =& Mail::factory("smtp", $params); 
$mail_object->send($recipients, $headers, $body); 
?>

我做错了什么?为什么它对一些收件人有效(我试过两个人使用@gmail.com电子邮件),而对其他人无效?

脚本很好&清楚地传达了信息。邮件只是被退回,这不是脚本的因素,而是邮件传输过程失败的因素。也就是说,这似乎要么是:

  1. 一个简单的错误或无效的电子邮件地址
  2. 来自服务器的邮件被AOL.com拒绝,因为它不符合他们的真实(又称:非垃圾邮件)电子邮件标准。要么需要设置PTR记录,要么需要调整SPF记录

根据我自己的个人经历,我将详细介绍第2点:AOL.com是一个众所周知的收件人,如果邮件不符合某些标准,就会弹出邮件。我遇到的最常见的问题是发送机器的一部分缺少PTR(又名:反向DNS记录)。或者您的域的SPF(发件人策略框架)记录没有验证您的IP地址。

PTR和;SPF本身就是一个话题,但我有一种直觉,那就是必须把其中一个或两个都固定在你这边——作为发件人——才能让电子邮件正确地发送到AOL.com

您的电子邮件已被退回。您的邮件系统工作正常,但您的"收件人"目的地由于X原因未接受您的电子邮件。

http://en.wikipedia.org/wiki/Bounce_message