postmail.cgiをSMTP対応にカスタマイズ
お名前SDサーバーにてpostmail.cgiを使っている運用歴の長いサイトがありました。そのサイトをお名前RSサーバーに移設した際に、メールが届かないという問題が発生しました。届かない宛先はyahooメールでした。yahooメールは迷惑メール判定が厳しいのですが、SMTP送信すれば解決するはずでした。SMTPでメール送信したいしかし、postmail.cgiはSMTP送信に対応していません。SMTP送信に対応しているperlスクリプトとしてメールフォームプロがあります。しかし、メールフォームに乗り換えるにあたり、フォームが使われている箇所が多く、各フォームの内容も異なるため、変更量が多くなってしまう問題がありました。そこで、すべてのフォームで共通に使われているpostmail.cgiをSMTP対応にカスタマイズすることにし、フォーム部分の変更が発生しないようにします。perlスクリプトをSMTP送信対応にカスタマイズsendmailを使っているスクリプトをSMTP対応にするのは難易度が高いように思えますが、実はそんなことはありません。postmail.cgiはperlで書かれています。perlにはSMTP送信できるモジュール(Net::SMTPモジュール)が用意されているので、それを使ってメール送信関数を置き換えれば完成です。sendmailでは自動でMessage-IDが付与されますが、Net::SMTPモジュールではMessage-IDが付与されないので、そこは別途対応が必要となりました。Yahooメールにもメールが届くようになりましたSMTP送信に変更した結果、yaho
0