いうスタンドアローンサーバが付属するようになりました。これを作成した際の知見メモ。AUTHのDIGEST-MD5認証を使うと送信に失敗する問題を調べてみました。Authでメールを送信する失敗します。ネットで検索するとPerlのNet::SMTPの問題と書かれていたりもしますが、実際にはさくらインターネット側の問題のようです。SMTPのログを取ってみるとこんな感じになります。Authenticatedを受け取ったあと、どんなコマンドを送っても切断されているようです。コマンドを送るまでソケットは生きているのですが、改行してコマンドを確定した瞬間にソケットの強制切断を喰らいます。これを回避するために、なにか特殊な暗号をしゃべるべきなのかもしれませんが皆目検討が付きません。DIGEST-MD5認証対応のpostfixサーバを構築して実験してみたところ、問題なく送信できました。これにより、さくらインターネット側の不具合の可能性がかなり濃厚になってきました。AUTHの認証方法を細かく指定することができません。内部で良きにはからってくれるので、仮にDIGEST-MD5認証に挑戦して失敗しても、CRAM-MD5等の他の認証方法を試します。PerlのNet::SMTPモジュールではなぜ問題が起こるのか?Net::SMTPモジュールは「EHLO」で返された「AUTH」の中で、最初に対応しているものを認証手段として選択します。失敗しても次の認証方法を試したりはしません。Authに失敗します。遅くとも2014年から存在する問題で、数年ずっと放置されてます。Pushを実装したまとめ。動作確認済のデモソース付。公開されたRFCに準拠し、内容をアップデートしました。旧仕様のaesgcmから、新仕様のaes128gcmに説明を変更しました。欲しかったので、ソースからインストールした時のメモ。