メモ書きに.
ここでも明記されているように,ConoHaのメールサーバーは共用SSL証明書を使っているので,場合によってはエラーを吐かれてしまう.
最近MediaWikiをインストールしたのだが,こいつも共用SSLを使っているとエラーを吐くようだ.(というか,PHPが5.6.xからピア証明書とホスト名の検証をデフォで有効にしたから.詳しくはここで)
authentication failure [SMTP: STARTTLS failed (code: 220, response: Ready to start TLS)]
↑のエラーが出ているので証明書の問題なのだが,MediaWikiのマニュアルを見ると
��オメーの証明書が悪いんじゃ.なんとかしろよ.」
との仰せ.GMOさんに文句言えばいいすかね?
そんなことも言ってられないので,モジュールの設定を無理やり書き換えて対処することに.
PHP5.6でSMTP送れない件 - ド忘れ防止雑記帳
このへんを参考にしてMediaWikiのnet_socketの設定を書き換える.
/path/to/mediawiki/vendor/pear/net_socket/Net/Socket.phpの694行付近が,
public function enableCrypto($enabled, $type) { if (version_compare(phpversion(), '5.1.0', '>=')) { if (!is_resource($this->fp)) { return $this->raiseError('not connected'); } return @stream_socket_enable_crypto($this->fp, $enabled, $type); } else { $msg = 'Net_Socket::enableCrypto() requires php version >= 5.1.0';705 return $this->raiseError($msg); } }
こんな感じになっているので,
701行付近に↓を挿入する.
stream_context_set_option($this->fp, 'ssl', 'verify_peer_name', false);
修正後はこんな感じ.
public function enableCrypto($enabled, $type) { if (version_compare(phpversion(), '5.1.0', '>=')) { if (!is_resource($this->fp)) { return $this->raiseError('not connected'); } stream_context_set_option($this->fp, 'ssl', 'verify_peer_name', false); return @stream_socket_enable_crypto($this->fp, $enabled, $type); } else { $msg = 'Net_Socket::enableCrypto() requires php version >= 5.1.0';705 return $this->raiseError($msg); } }
一応Apacheを再起動すればMediaWikiからメール送信が出来るようになってるはず.少なくともメールアドレス認証のメールぐらいは送れるので,ユーザー作成にメアド必須設定もできるようになります.
とりあえずここまで
コメント
コメントを投稿