Yii2 smtp错误500 5.5.1命令无法识别

时间:2016-05-27 10:13:54

标签: php yii2

在我的Yii2应用程序中,我有一个用swift发送电子邮件的联系表单。

我已经以这种方式配置了我的应用程序:

这些是web.php中的配置:

'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        // send all mails to a file by default. You have to set
        // 'useFileTransport' to false and configure a transport
        // for the mailer to send real emails
        'useFileTransport' => false,
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'authsmtp.myhost.com',
            'username' => 'username',
            'password' => '************',
            'port' => '25',
            'encryption' => 'tls',
        ],
    ],

这是我发送邮件的控制器的一部分:

if($contact->load($post) && $contact->validate())
    {
          Yii::$app->mailer->compose('request',['contact' => $contact ])
                  ->setFrom('mail1@mail.it')
                  ->setTo('mail2@mail.it')
                  ->setSubject('This is a test email')
                  ->send();

          return $this->redirect(['login/index']);
    }

我收到一个包含此错误的Swift_TransportException:

  

预期的响应代码220,但代码为“500”,消息“500 5.5.1命令无法识别”

有没有办法检索有关swift生成的错误的更多信息? 这条消息太笼统了。 提前感谢所有帮助

1 个答案:

答案 0 :(得分:2)

使用yii\swiftmailer\Logger进行日志记录:

  

Logger是一个SwiftMailer插件,它允许将SwiftMailer内部日志传递给Yii日志记录机制。每个本机SwiftMailer日志消息都将转换为Yii'info'日志条目。

使用SSL / TLS的SMTP端口为465或587,没有的端口为25。来自Wikipedia page on SMTP

  

默认情况下,SMTP使用TCP端口25.邮件提交的协议相同,但使用端口587.由SSL保护的SMTP连接(称为SMTPS)默认为端口465(非标准,但有时用于遗留原因)。

除非您的服务器已明确设置为使用带有SSL / TLS的端口25,否则不应使用加密。