Swiftmailer错误:收件人被拒绝

时间:2014-02-18 22:09:05

标签: php swiftmailer

我正在努力让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

1 个答案:

答案 0 :(得分:3)

不是“真正的”答案,但评论框太长了:

  

这是来自gmail服务器的响应

recipient rejected意味着,不知何故,收件人(即您发送邮件的地址,legal @ gmail.com`)被“拒绝”。

这可能有很多原因

  • 电子邮件地址(不再存在)(非常可能)
  • 用户邮箱已满(非常可能)
  • 该帐户被gmail阻止(非常可能)
  • 用户设置过滤器以明确拒绝来自您的电子邮件(不确定是否可以使用gmail完成此操作,但技术上可行)。
  • 您的邮件被视为垃圾邮件(不太可能,您可能会收到不同的邮件)
  • ......还有很多人......

有点不幸的是,gmail没有提供有关原因的更多信息。我找不到关于gmail错误代码的任何文档(550是一个通用的“它失败了”代码),通常这些消息更冗长......

你可以试试:

  • 确保非常确保电子邮件存在且有效。请确保使用不同的Gmail地址(即您可以访问的地址)。
  • 检查您是否已列入黑名单,例如使用:http://mxtoolbox.com/blacklists.aspx
  • 尝试从smtp.mydomain.org发送邮件,例如使用命令行mail实用程序(如果它是UNIX框),如果这不起作用,您知道问题出在邮件服务器上,如果它确实有效,你知道问题出在Swift邮件程序中。