LoginSignup
3
2

More than 5 years have passed since last update.

Google Apps SMTP リレーサービスとCakePHP3のEmailを併用するときの注意

Last updated at Posted at 2015-12-05

公式ドキュメントの項番7で、IPアドレス認証のみを選択した場合

[認証] セクションで、以下のいずれかまたは両方のチェックボックスをオンにして認証方法を設定します。
https://support.google.com/a/answer/2956491?hl=ja

正しい書き方

config/app.php
'EmailTransport' => [
        'default' => [
            'className' => 'Smtp',
            'host'      => 'smtp-relay.gmail.com',
            'port'      => 25,
            'timeout'   => 30
        ],
    ],

ダメな書き方

config/app.php
'EmailTransport' => [
        'default' => [
            'className' => 'Smtp',
            'host'      => 'smtp-relay.gmail.com',
            'port'      => 25,
            'timeout'   => 30,
            'username'  => '',
            'password'  => ''
        ],
    ],

解説

CakePHP3はusernamepasswordカラムが存在すると、
LOGIN AUTHコマンドをSMTPサーバに送信します(ver 3.1.5まで確認済み)。
https://github.com/cakephp/cakephp/blob/master/src/Mailer/Transport/SmtpTransport.php

そのため認証不要であるsmtp-relay.gmail.comが落ち、
MailオブジェクトがCake\Network\Exception\SocketExceptionを吐きます。

パスワード認証不要のSMTPサーバに対して接続しようとして失敗する場合に同様の手順が使えるでしょう。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2