[CakePHP]メール送信で”Could not send email: unknown”

CekePHP5でメール送信したら
“Could not send email: unknown”
という謎のメッセージが出る。

原因

EmailTransportのclassNameの設定を確認する。

app.php(もしくはapp_local.php)のEmailTransportの設定を見ると


    'EmailTransport' => [
        'default' => [
            'className' => MailTransport::class,
            /*
             * The keys host, port, timeout, username, password, client and tls
             * are used in SMTP transports
             */
            'host' => 'localhost',
            'port' => 25,
            'timeout' => 30,
            /*
             * It is recommended to set these options through your environment or app_local.php
             */
            //'username' => null,
            //'password' => null,
            'client' => null,
            'tls' => false,
            'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
        ],
    ],

といった感じに書いてあるのだが、ここclassNameをSmtpかMailにする必要があるようです。
外部のSMTPサーバーで接続する場合はSmtp
PHPのメーラーを使う場合はMailを設定する。

CakePHP3ぐらいのときから同じだと思いますが、いまいちわかりにくい設定なので、いつも忘れてしまう。。

タイトルとURLをコピーしました