覚え書き

SwiftでGmailにSMTP接続でエラー

こんにちは

 

ローカルマシンのXampp環境でGmailアカウントを使用して、

Swiftでメールを送信したら、こんなエラーがでました。

SwiftMailer SMTP TLS OpenSSL Error SSL3_GET_RECORD:wrong version number

原因は、PHP5.6からクライアントストリームで、ピア検証がデフォルトで有効になったためです。
今回はローカルマシンでの対応なので、verify_peerをfalseにして送信してしまいます。

修正箇所は、Swiftのファイルを直接修正します。

対象ファイルこれ↓
ib/classes/Swift/Transport/StreamBuffer.php

263行に付近をこんな感じに修正します。

if (!empty($this->_params['sourceIp'])) {
    $options['socket']['bindto'] = $this->_params['sourceIp'].':0';
}
$options['ssl'] = ['verify_peer' => false];// これを追加
$this->_stream = @stream_socket_client($host.':'.$this->_params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, stream_context_create($options));
if (false === $this->_stream) {

これでとりあえず遅れるようになります。