1. ホーム
  2. php

[解決済み] Laravelで応答コード220を期待したが、コード「"」、メッセージ「"」が表示された。

2022-02-19 01:51:07

質問

LaravelのMail機能を使って、メールを送信しています。以下は、私の app/config/mail.php ファイルの設定です。

'driver' => 'sendmail',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => '[email protected]', 'name' => 'MyName'),
'encryption' => 'tls',
'username' => 'myUsername',
'password' => "password",
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

コントローラメールメソッド

//Send Mail     
Mail::send('sendMail', array('key' => 'value'), function($message)
{
    $message->to('[email protected]', 'Sender Name')->subject('Welcome!');
});

このコードを実行すると、次のようなエラーメッセージが表示されます。

Swift_TransportException

応答コード 220 を期待しましたが、コード "" とメッセージ "" が表示されました。

を作成しました。 SendMail.php ファイルをビューで作成し、その中にいくつかのデータが含まれています。

このエラーメッセージを解決するにはどうしたらよいですか?

解決方法を教えてください。

この問題は、一般的に gmail アカウント(これは ここで を送信するために使用しています。 email . そこで、まず two step verification 2段階認証の有効化については、多くのリソースをご覧ください。これを有効にしたら、次に app password . そして app password の中で .env ファイルを作成します。それが終わると、あなたの .env ファイルは次のようなものになります。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>
MAIL_ENCRYPTION=tls

と、あなたの mail.php

<?php

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,

];

この後 php artisan config:cachephp artisan config:clear で、確認すると、メールは正常に送れるはずです。