メールサーバーをテストしたところ、PHP経由でメールを送信できないというエラーに遭遇しましたが、Mail-in-a-boxごとの通常の送受信は問題なく機能します。私たちは、必要なすべてのコンポーネントが実行されているメールインボックスのみを備えた個別のUbuntu 18.04サーバーを実行しています。
error.logテキストファイルに出力
PHPの致命的なエラー:キャッチされなかったSwift_TransportException:応答コード354が必要ですが、コード "554"が返され、メッセージ "554 5.5.1エラー:有効な受信者がありません\ r"
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);
私たちが試みたのは、Mail-in-a-boxとすべてのコンポーネントを再インストールし、すべてのスペルミスをチェックすることです。ライシパントはメールサーバーに存在し、クライアントを介して手動でメールを送受信できます。
私はこのエラーを解決しました(554)laravel(.env file)これらの2行に追加するだけです:
[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();
}