アキラの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

コメント

コメントを投稿





カテゴリ「Perl」内の記事

サイト内検索

カテゴリ

最近のエントリ

関連商品

アバウト

Atom RSS
Powered by MT3.33-ja
合計:total
今日:today 昨日:yesterday