我正在努力让Swiftmailer工作,但不断收到“收件人拒绝”的信息。
是什么原因导致“收件人被拒绝”的回复?这是来自gmail服务器的响应(gmail感知这是垃圾邮件)吗?有办法克服这个问题吗?否则,我将放弃Swiftmailer并尝试PHPMailer。我以前在PEAR包方面取得了成功但是厌倦了配置并且首先尝试使用Swiftmailer ......它应该不是这么难吗?
我的配置:
- PHP 5.5.6
- Swiftmailer 5.0.3(带记录器插件)
- 由GoDaddy主持(是的......我知道)目标:使用Swiftmailer将 admin@mydomain.org 的SMTP邮件发送至 legit@gmail.com
(显然电子邮件地址是实际地址的占位符)
这是PHP代码:(与Swiftmailer documentation中的示例相同)
<?php
require_once 'lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.mydomain.org', 25)
->setUsername('admin@mydomain.org')
->setPassword('mypassword')
;
$mailer = Swift_Mailer::newInstance($transport);
$logger = new Swift_Plugins_Loggers_EchoLogger();
$mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('admin@mydomain.org' => 'admin'))
->setTo(array('legit@gmail.com' => 'recipient'))
->setBody('Here is the message itself')
;
$result = $mailer->send($message);
echo $logger->dump();
?>
以下是相关的记录器信息:
...
++ Swift_SmtpTransport started
...
>> RCPT TO: <legit@gmail.com>
<< 550 5.1.1 <legit@gmail.com> recipient rejected
!! Expected response code 250/251/252 but got code "550", with message "550 5.1.1 <legit@gmail.com> recipient rejected "
>> RSET
<< 250 2.0.0 OK
++ Stopping Swift_SmtpTransport
>> QUIT
答案 0 :(得分:3)
不是“真正的”答案,但评论框太长了:
这是来自gmail服务器的响应
是
recipient rejected
意味着,不知何故,收件人(即您发送邮件的地址,legal @ gmail.com`)被“拒绝”。
这可能有很多原因
有点不幸的是,gmail没有提供有关原因的更多信息。我找不到关于gmail错误代码的任何文档(550是一个通用的“它失败了”代码),通常这些消息更冗长......
你可以试试:
smtp.mydomain.org
发送邮件,例如使用命令行mail
实用程序(如果它是UNIX框),如果这不起作用,您知道问题出在邮件服务器上,如果它确实有效,你知道问题出在Swift邮件程序中。