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 編資料