PEAR邮件,“无法设置发件人”

5
我有一个PHP邮件脚本,可以成功发送邮件到除GMail地址外的所有邮箱。现在我试图使用PEAR的Mail和Mail_Mime包创建一个可以发送到GMail的脚本。我得到的印象是,只有通过连接GMail的SMTP服务器才能发送邮件。尝试了一个简单的测试脚本后,我收到了以下错误信息:
无法将寄件人设置为 [username@gmail.com]
地址没有问题,this site建议,如果地址格式没有错误,则是服务器连通性问题。但是,在这种情况下,我该如何排除连接问题?或者我还做错了什么吗?或者有其他更容易的方法让PHP脚本成功地发送邮件到GMail吗?
我的代码如下(电子邮件地址和密码已更改)。
$from = "username@gmail.com";
$to = "username@gmail.com";
$subject = "Test";
$crlf = "\n";
$text = 'Text message';
$html = '<html><body>HTML message</body></html>';
$headers = array (
    'From' => $from,
    'Return-Path' => $from,
    'Subject' => $subject
);

$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$body = $mime->get();
$headers = $mime->headers($headers);

$smtp = Mail::factory(
    'smtp',
    array (
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'auth' => true,
        'username' => "username@gmail.com",
        'password' => "password",
        'debug' => true
    )
);

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
    echo 'FAILURE';
} else {
    echo 'SUCCESS';
}

我遇到了完全相同的错误,请帮忙! - bentford
我的问题最终得到了解决。我让服务器的支持人员介入并修复了它。我问了一下问题所在,他们只告诉我“你的用户名导致电子邮件被丢弃到Gmail”,并且“只有管理员才能修复这个问题”。 - Phantom Watson
1个回答

2

我想不出为什么一个简单的username@gmail.com地址不能使用,所以这可能是另一个错误伪装成那个错误。确保您没有意外地抑制错误消息(在调用发送之前放置error_reporting(E_ALL)调用)。

需要记住的一件事是,您不需要使用GMail的SMTP服务器向GMail地址发送邮件。您可以使用提供给您的托管服务商的SMTP服务器达到同样的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接