SAK 図書館
CGI-Perl 基礎編 (その九) 電子メール送信 sendmail (jcode.pl 要)
■電子メール送信 sendmail (jcode.pl 要)
・@nifty や biglobe では、sendmail が使用できない。
使用可能なサイトでは、次のようにするとメール送信が CGI から行える。
アンケートフォームからのデータセットになる送信など、使い方は工夫次第
である。
・「$mailer = '/usr/lib/sendmail';」は、サイトの仕様によって、sendmail
までのパスを指定する。
・「$mlfr = 'mailadr@????.???';」は、発信元メールアドレスを指定する。
アンケートなどでは、相手の入力メールアドレスをセットすれば良い。
単なるお知らせであれば、自分のメールアドレスを指定する。
・「$mlto = 'mailadr@????.???';」は、送信先メールアドレスを指定する。
これは自分のメールアドレスを必ず指定する。
・「$mlsb = 'title';」は、メールタイトルを指定する。
もしかすると日本語をセットすると問題が発生するかもしれない。
・「$mlms = 'てすとメッセージです。';」は、メール本文を指定する。
日本語は JIS エンコードで送信される。
複数行に改行する場合は、「"\n"」を使用する。
$mlms = 'てすとメッセージです。' . "\n";
$mlms = $mlms . '2 行目' . "\n";
$mlms = $mlms . '3 行目' . "\n";
・尚、メールサーバによっては、
「open(MAIL, "| $mailer -t -f'$mlfr'") or $err = 1;」部分の
「 -f'$mlfr'」をカットする必要があるかもしれない。
open(MAIL, "| $mailer -t") or $err = 1;
・「$jcph = '.';」は、普通は修正の必要なし。
・実行には、このテスト CGI と同じ場所に jcode.pl が必要である。
#!/usr/local/bin/perl
#//=====================================================================
#// メール送信 sendmail テスト (jcode.pl 要)
#//=====================================================================
#// 準備
$mailer = '/usr/lib/sendmail';
$mlfr = 'mailadr@????.???';
$mlto = 'mailadr@????.???';
$mlsb = 'title';
$mlms = 'てすとメッセージです。';
$jcph = '.';
#// メール送信
require "$jcph/jcode.pl";
jcode'convert(*mlsb, "jis");
jcode'convert(*mlms, "jis");
$mlhd = "From: $mlfr" . "\n" . "To: $mlto" . "\n" . "Subject: $mlsb" . "\n\n";
$err = 0;
open(MAIL, "| $mailer -t -f'$mlfr'") or $err = 1;
if ($err == 0) {
print MAIL $mlhd;
print MAIL $mlms;
print MAIL "\n";
print MAIL "\n\n" . "." . "\n";
close(MAIL);
$msg = 'メール送信正常に処理しました。';
}
else {
$msg = 'メール送信エラー';
}
#// メール送信結果表示
print << "END_OF_HTML";
Content-type: text/html
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>メール送信結果</TITLE>
</HEAD>
<BODY>
$msg<BR><BR>
-- メールヘッダ --<BR>
$mlhd<BR><BR>
-- メール本文 --<BR>
$mlms
</BODY>
</HTML>
END_OF_HTML
#// 終了
exit(0);
■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料
■PHP 基礎編資料
■PHP + MySQL 編資料