10年近く前にCGIとして、sendmailを利用したフォームメールの送信プログラムを作成して以来、久しぶりにフォームメールについてgoogle で調べたら、おなじsendmailを利用したフォームメールでもPerlのソースコードの書き方に幾つかの種類が有ることが分かったので、ここに覚え書きとして書き留めておきます。
ソースの変数
$mailprog = "/usr/sbin/sendmail"; sendmailのパス
$MyMail = 'mymail@exampl.com'; フォームメールを受信するメールアドレス
$UserMail = 'user@fogefoge.com'; フォームメールを送信した相手のメールアドレス
$subject = 'こんにちは'; フォームメールの題名
$message = '先日はお世話様でした。またお会いしましょう。'; フォームメールの本文
- わたしが最初に作成して以来、今まで使い続けてきたソースコード。わたしのクライアントを含めると数十社レンタルサーバーで利用していますが、今まで問題を指摘されたことはない安定したソースコードです。ただし、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; - 今回調べて見たら、見つかったソースコードです。正常にフォームメールが送信されることを確認しました。
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はおなじ命令をプログラムとして実行させる場合、幾通りものソースコードの書き方がある実例として、シンプルで分かりやすいので自分の備忘録として書き留めました。
実際のフォームメールはこれ以外のソースコードが必要となりますので、注意してください。
コメントする