お問い合わせはコチラから

メールフォームCGIからメールが届かない時の対処法

サイト運営

先日、Xserverにサーバー移転した時の話です。メールフォームCGIからメールが飛ばなくなりました。

CGIの中身はsendmailを使っているだけのシンプルなフォームなのですがなぜかメールが飛ばない。もちろん移転前は飛んでいた。

エラーが出るかもという予想はしていましたが、エラーなしでメールが飛ばないケースは想定外だったので、結構焦りました。

この記事では、その時の対処方法をまとめておきたいと思います。

使用していたCGIはmailform

私は知らなかったのですが、結構有名なPerlのCGIのようです。

基本的には、send.cgiというファイルだけで動くシンプルなファイル構造で、メールの送信はsendmailを呼び出してテキストを投げているだけ。

郵便番号からの住所自動入力や送信ログのダウンロード機能もある。

問題の現象

フォームから送信ボタンを押しても、全然メールが届かない。自動返信メールも来ない。

mailformで送信できない時の対処方法

mailformなのかsendmailなのか問題を切り分ける必要があります。

コマンドラインでsendmailでメールが送れるか?

コマンドラインでメールを送信してみました。

echo Meowning! |sendmail hotaru@example.ne.jp

送れることがわかりました。

sendmailは生きています。

sendmailの使い方が悪いのか?

使い方の問題なのかと思って調べると、それらしい記事が見つかりました。

send.cgiの中身を確認すると、-tオプションが使われていたので、-tをやめて直接コマンドラインで指定するように変更しました。

そうしたら送れるようになりました。

sub sendmail {
        my($mailto,$mailfrom,$subject,$body) = @_;
        if($conf{'geoplus'}){
                $mailfrom = $conf{'mailto'};
                sleep(3);
        }
#       open(MAIL,"| $conf{'sendmail'} -f $mailfrom -t");
        open(MAIL,"| $conf{'sendmail'} -f $mailfrom  $mailto");
#               print MAIL "To: $mailto\n";
                print MAIL "Errors-To: $mailto\n";
                print MAIL "From: $mailfrom\n";
                print MAIL "Subject: $subject\n";
                print MAIL "MIME-Version:1.0\n";
                print MAIL "Content-type:text/plain; charset=$conf{'charset'}\n";
                print MAIL "Content-Transfer-Encoding:7bit\n";
                print MAIL "X-Mailer:Web Mail Delivery System\n\n";
                print MAIL "$body\n";
        close(MAIL);
}

まとめ

CGIのフォームからメールを送れない時はsendmailの-tオプションをやめて、コマンドラインで指定しましょう。

この記事が気に入ったら フォローしよう
最新情報をお届けします。
この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

オランダで生きていく
タイトルとURLをコピーしました