当检验出我们的邮件服务器,我们跌跌撞撞翻过阻止我们通过PHP发送邮件的错误,但正常的发送/每函件一箱接收工作没有任何问题。我们正在运行的只有函件一箱与所有需要的组件单独运行的Ubuntu 18.04服务器。
输出在error.log中的文本文件
PHP致命错误:未捕获Swift_TransportException:预期响应代码354,但得到的代码“554”,用信息“554 5.5.1错误:没有有效的接收者\ r \ n”
PHP文件
$request_email = $_POST['request-email'];
$request_name = $_POST['request-name'];
$request_text = $_POST['request-text'];
$transport = (new Swift_SmtpTransport('data.abc.xy', 587, 'tls'))
->setUsername('[email protected]')
->setPassword('*******')
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
$mailer = (new Swift_Mailer($transport));
$message = (new Swift_Message('Name: '. $request_name))
->setFrom(['' . $request_email => '' . $request_name])
->setTo(['[email protected]'])
->setBody('E-Mail: ' . $request_email . $request_text)
->setContentType("text/html");
$result = $mailer->send($message);
我们试图为重新安装所有的邮件,在一箱和所有的组件,并检查所有拼写错误。该ricipient确实我们的邮件服务器上存在,并且可以接收,并通过客户端手动发送邮件。
我已经解决了这个错误(554)只是增加laravel(.ENV文件)这两条线:
[email protected]
MAIL_FROM_NAME="[email protected]"
在此之后运行此命令刷新邮件缓存配置:
php artisan config:cache
554 5.5.1错误是SMTP错误“没有有效的接收者”。如果你拼错了收件人的地址,则可能发生,但如果你没有正确地验证到发件服务器,也可以发生。
所以问题是,abc.xy并不是一个注册的域名,所以你不能发送电子邮件到这个地址。我认为这是不是与你的代码。
您可以赶上Swift_TransportException
错误,并在自己的代码库一样处理:
try {
$result = $mailer->send($message);
}
catch (Swift_TransportException $e) {
echo $e->getMessage();
}