メールを送信する ( sendmail版 )
Perlからメールを送信する方法として、SOCKETを使用する方法や、Net::SMTPモジュールを使用する方法などがありますが、sendmailが使用できる環境であれば、以下のように sendmailを使用する方法が簡単です。 sendmailとは UNIXの標準で付属する MTA ( Mail Transfer Agent ) で Windows NTにも移植がされています。
sendmailを使ってメールを送信するには、先ず sendmailとファイルハンドルを結びつけます。 次にそのファイルハンドルに対して、宛先、送信元、標題といったヘッダを出力して、続けて改行を一つに本文を出力するだけです。
注意する点として、メールは JISコードで送信しなければいけないと言う事と、ヘッダのところに日本語を使いたい場合は MIME エンコードしなければならないことです。 JISコードへの変換は jcode.pl を、MIMEエンコードには mimew.pl 使用していますので、ない方は以下のサイトよりダウンロードしてください。
#!/usr/bin/perl
require "mimew.pl";
require "jcode.pl";
$sendmail = '/usr/lib/sendmail';
$to = "to\@sss.co.jp"; # 宛先アドレス
$from = "from\@sss.co.jp"; # 送信元アドレス
$subject = "標題";
$body = "メール本文";
# 本文をJISコードへ変換
&jcode'convert(*body,'jis');
# 標題をJISコードへ変換してMIME エンコード
&jcode'convert(*subject,'jis');
$subject = mimeencode($subject);
# ファイルハンドルをsendmailへ紐付け
open(MAIL,"| $sendmail -t");
# sendmailへコマンドの出力
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "\n";
print MAIL "$body\n";
close(MAIL);
Perl や sendmail のパスはご自分の環境に合わせてください。
|