CakePHP3 で構築しているシステムからExchange Onlineをメールサーバーとしてメールを送信しているのですが、数日前からメール送信に失敗するようになってしまいました。
Microsoftに問い合わせたところ、TLS 1.0 が使用されていることが原因であり、TLS 1.2を使用してメールを送信することを案内されました。
TLS 1.2でメールを送信したいのですが、どのようにすればよろしいのでしょうか。
■環境
Windows Server 2012R2
IIS8.5 (PHPはFastCGIを使用)
PHP 7.1.12
CakePHP3 (3.3.8)
phpinfoでは下記が出力されています。
Registered Stream Socket Transports | tcp, udp, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2 |
openssl
OpenSSL support | enabled |
OpenSSL Library Version | OpenSSL 1.0.2m 2 Nov 2017 |
OpenSSL Header Version | OpenSSL 1.0.2m 2 Nov 2017 |
Openssl default config | c:/usr/local/ssl/openssl.cnf |
Directive | Local Value | Master Value |
---|---|---|
openssl.cafile | no value | no value |
openssl.capath | no value | no value |
メール送信設定は下記のようにしています。
PHP
1 'EmailTransport' => [ 2 'default' => [ 3 'className' => 'Smtp', 4 // The following keys are used in SMTP transports 5 'host' => (Exchange Online), 6 'port' => 25, 7 'timeout' => 30, 8 'client' => null, 9 'tls' => true, 10 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), 11 ], 12 ],
メール送信は抜粋ですが、下記のようにしています。
PHP
1use Cake\Mailer\Email; 2 3$email = new Email('default'); 4~ 5$email->send();
どうぞ宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー