SOY Shopを利用している方から
CMS内から送信できるメールで、送信方法をSMTPにするとメールが送信できない
という報告があった。
SOY Shopに限らず、SOY InquiryやSOY Mailを公開した頃からほとんどコードを変えていないのに、
突然メールが送信できなくなるなんてあるのか?と思いつつ、
セキュリティ対策を強化したメールサーバー専用プラン【メールボックス】 - レンタルサーバーはさくらインターネット
私が借りているさくらのメールボックスのアカウントでSMTPによる送信を試してみたところ送信されず。
Thunderbird — メールをもっと簡単に。 — Mozilla
更に試しにメールクライアントであるThunderbirdで送信をしてみたところ、
何故かメールクライアントの方では送信できた。
さくらのメールボックスの方で仕様変更があったのか?
ということでSOY Shopにあるメールの送信の仕組みを見直してみた。
SMTPでメールを送信する際に必要となる情報は、
・サーバ名
・ポート
・ユーザ名
・パスワード
の4項目で、
メールクライアントの方でメールが送信できたとなると、上記の4項目に誤りはない。
となるとSOY ShopのSMTPの仕様の方に問題があることになる。
クライアントがSMTPサーバを利用する際、
送信直前にアカウントに誤りがないか確認するが、
SMTPサーバでアカウントの認証を行う場合に認証のアルゴリズムを活用し、SOY Shopでは下記のアルゴリズムを利用する。
・DIGEST-MD5
・CRAM-MD5
・PLAIN
・LOGIN
諸々の仕様は興味があれば自身で調べていただくとして、
SOY Shopでは、上記のどれか一つを利用してSMTPの認証を行う。
SOY ShopではDIGEST-MD5が利用できれば、他の認証は試さない仕様になっていて、
アルゴリズムの選択は上から順の優先順にとなっている。
各認証を試してみたところ、
さくらのメールボックスでは今まで使用してきたDIGEST-MD5で弾かれるようになったらしく、
CRAM-MD5に切り替えて認証してみたところ、認証とメールの送信が確認できた。
取り急ぎ、
同梱版のSMTP周りをCRAM-MD5を最優先にしてみるけれども、
他のサーバ会社のメールボックスでもこの対応で良いのだろうか?と悩むところ。
今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。