うろぐ

インターネットサービス&デジタル家電&デジタルカメラ&パソコンのレビュー

10年近く前にCGIとして、sendmailを利用したフォームメール送信プログラムを作成して以来、久しぶりにフォームメールについてgoogle で調べたら、おなじsendmailを利用したフォームメールでもPerlのソースコードの書き方に幾つかの種類が有ることが分かったので、ここに覚え書きとして書き留めておきます。

ソースの変数
$mailprog = "/usr/sbin/sendmail"; sendmailのパス
$MyMail = ‘mymail@exampl.com’; フォームメールを受信するメールアドレス
$UserMail = ‘user@fogefoge.com’; フォームメールを送信した相手のメールアドレス
$subject = ‘こんにちは’; フォームメールの題名
$message = ‘先日はお世話様でした。またお会いしましょう。’; フォームメールの本文

  1. わたしが最初に作成して以来、今まで使い続けてきたソースコード。わたしのクライアントを含めると数十社レンタルサーバーで利用していますが、今まで問題を指摘されたことはない安定したソースコードです。ただし、Gmailでは迷惑メールのフォルダに受信されてしまいますが、フォームメールなどサーバーが送信するメールの殆どが迷惑メールのフォルダに受信されてしまうのが現状ですので、あえて変更や修正は加えていません。
    open MAIL,"| $mailprog";
    print MAIL <<"EOF";
    From: $MyMail
    To: $UserMail
    Subject: $subject
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Type: text/plain; charset=iso-2022-jp

    $message
    EOF
    close MAIL;

  2. 今回調べて見たら、見つかったソースコードです。正常にフォームメールが送信されることを確認しました。
    open (MAIL,"| $mailprog");
    print MAIL <<"EOF";
    From: $MyMail
    To: $UserMail
    Subject: $subject
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Type: text/plain; charset=iso-2022-jp

    $message
    EOF
    close MAIL;

赤字の1行が違っているだけですが、Perlはおなじ命令をプログラムとして実行させる場合、幾通りものソースコードの書き方がある実例として、シンプルで分かりやすいので自分の備忘録として書き留めました。

実際のフォームメールはこれ以外のソースコードが必要となりますので、注意してください。

5月 18th, 2008

Posted In: CGI(Perl)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です