アキラのITメモ:メールを送る簡単なCGIプログラム
IT関係、技術関係のメモです。
メールを送る簡単なCGIプログラム
メール送信を行うことがよくあるのですが、CGIによる簡単なメール送信方法の例を書きます。といってもsendmailを叩いているだけなのでたいしたことではないですが。本当は入力文字のチェックだとか行わないといけないのでもう少し複雑なコードを書く必要があるでしょう。
#!/usr/local/bin/perl
use CGI;
use Jcode;
# sendmailのパス
$sendmail = '/usr/sbin/sendmail';
my $query = CGI->new;
my $from_address = $query->param("from_address");
my $to_address = $query->param("to_address");
my $subject = $query->param("subject");
my $message_body = $query->param("message_body");
&Jcode::convert(\$message_body,'jis');
&Jcode::convert(\$subject,'jis');
$subject = jcode($subject)->mime_encode;
open(OUT,"| $sendmail -t -i");
print OUT "From: $from_address\n";
print OUT "To: $to_address\n";
print OUT "Subject: $subject\n";
print OUT "Content-Transfer-Encoding: 7bit\n";
print OUT "Content-Type: text/plain; charset=\"iso-2022-jp\"\n\n";
print OUT "$message_body";
close(OUT);
print "Content-Type: text/plain\n\ndone.\n";
ちなみにsendmailの-tオプションはヘッダに書いたToやCc、Bccを使ってメールを送ってもらうためのオプションで、-iは.(ピリオド)のみの行も遅れるようにするためのオプションです。JcodeモジュールでJISおよびMIMEエンコードを行っています。これをmail.cgiなどと保存してhtml中から以下のように呼び出せば簡単なメール送信フォームが出来ます。
<html> <head><title>mail form sample</title></head> <body> <form method="post" action="mail.cgi"> <p> From:<br /> <input name="from_address" size="36" /><br /> To:<br /> <input name="to_address" size="36" /><br /> Subject:<br /> <input name="subject" size="36" /><br /> Message:<br /> <textarea name="message_body" rows="6" cols="40"></textarea><br /> <input type="submit" value="送信" /> </p> </form> </body> </html>
カテゴリ:
Perl
投稿日: 2007年01月07日 23:50
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/416
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/416
コメント
コメントを投稿
カテゴリ「Perl」内の記事
サイト内検索
カテゴリ
- Linux
- Linux Tips [14]
- Linux ソフトウェア [3]
- Web技術
- (X)HTML/CSS [4]
- JavaScript [1]
- MovableType [7]
- その他 [3]
- 各種API [3]
- 各種ツール [4]
- Windows
- Win Tips [3]
- Win ソフトウェア [6]
- コネタ [7]
- プログラミング
- 機器 [4]