SOY Shopを利用している方から

CMS内から送信できるメールで、送信方法をSMTPにするとメールが送信できない

という報告があった。


SOY Shopに限らず、SOY InquiryやSOY Mailを公開した頃からほとんどコードを変えていないのに、

突然メールが送信できなくなるなんてあるのか?と思いつつ、


sakura_mail_box

セキュリティ対策を強化したメールサーバー専用プラン【メールボックス】 - レンタルサーバーはさくらインターネット


私が借りているさくらのメールボックスのアカウントでSMTPによる送信を試してみたところ送信されず。


thunderbird_logo

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を最優先にしてみるけれども、

他のサーバ会社のメールボックスでもこの対応で良いのだろうか?と悩むところ。


今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。

/soycms/

/soycms/soyshop/