古いフレームワーク(Cakephp2)でgmail(G suite)経由でメール送る場合にエラー発生 対処方法等
2020年4月23日トピックス
最近のGoogleのセキュリティ対策は相当厳しい。
未だにお客さんの依頼でたまにある事。残念ながら古いフレームワークを使うとOAuth対応とかされていなかったりするので、自分で作るか「セキュリティの低いアプリで連携」になると思う。
ガシガシっとコーディングしてた時代なら自分でOAuth対応ライブラリー作るところだが、そこまで今は気力はない。
ログに出てくるエラー
1 |
Error: [SocketException] SMTP server did not accept the password. |
もちろん、G Suiteの「安全性の低いアプリ」に設定していますが、メールを送信してみると依然エラーが発生する。
安全性の低いアプリを許可する対処方法
どうもうまくいかないので今度はG Suite AdminではなくGoogle ユーザアカウントの方にある安全性の低いアプリを許可するページを設定してみた。結果大成功!
セキュリティ設定レベルを制御するページapp/Config/email.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public $smtp = array( 'transport' => 'Smtp', 'from' => 'info@xxxxx.jp', 'host' => 'ssl://smtp.gmail.com', 'port' => 465, 'timeout' => 30, 'username' => 'info@xxxxx.jp', 'password' => '?????????', 'client' => null, 'log' => true, 'charset' => 'utf-8', 'headerCharset' => 'utf-8', 'context' => [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ] //'tls' => true ); |