古いフレームワーク(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         ); | 
 
	
