GMailからメール送信できなくなったので調べてみた


■メール送信時にこんなエラーが出るって声が聞こえた

501 5.5.4 HELO/EHLO argument ssl://smtp.gmail.com invalid, closing connection. 22sm5605803pfh.48 - gsmtp

-

■コマンドで試してみた

$ openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf
(略)
ehlo ssl://smtp.gmail.com
501 5.5.4 HELO/EHLO argument ssl://smtp.gmail.com invalid, closing connection. 22sm5605803pfh.48 - gsmtp

これだ。

-

「EHLO ssl://smtp.gmail.com」を「EHLO smtp.gmail.com」にしたら良いんじゃないのかと推測。

-

■再びコマンドで試してみる

1) コマンドで認証するためにGMailのアプリ固有のパスワードを生成
2) アプリ固有パスワードからbase64 encodeした文字列を作成

$ perl -MMIME::Base64 -e 'print encode_base64("\000自分のメールユーザ名\@hogehoge.co.jp\000アプリ固有パスワード")'
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 →文字列を控えておこう

3) opensslコマンドで送信を試みる

$ openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf
(略)
ehlo smtp.gmail.com →ここを変えてみた
(略)
auth plain XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
235 2.7.0 Accepted
mail from: <[email protected]>
250 2.1.0 OK qh8sm5566595pac.40 - gsmtp
rcpt to: <[email protected]>
250 2.1.5 OK qh8sm5566595pac.40 - gsmtp
data
354  Go ahead qh8sm5566595pac.40 - gsmtp
Subject: hogehoge

mail test
.
250 2.0.0 OK 1459339665 xxxxxxxxxxxxxxx.40 - gsmtp
 ★メール送信成功。(実際届いてるとこまで確認できた)

-

ということで恐らくGMail側でEHLOに指定するホスト名の指定についての仕様変更的なものがあったのかなと。

そもそもssl://付けないのが正しいのかどうかまでは調べてないのでご容赦(汗

-