メール送信のスクリプトメモ

「件名」はFromやTo:と同じヘッダフィールドに入るため、文字コード変換だけではダメで、さらにMIMEエンコードしてやる必要があります。

use Jcode;

my $subject = "件名";
my $body = "本文";
$subject = Jcode::jcode($subject)->shiftjis;
$subject = Jcode::jcode($subject)->mime_encode;
$body = Jcode::jcode($body)->shiftjis;

my $message = <<END;
To: example\@mobile
Cc: example\@gmail
Subject: $subject
$body
END

open SM, "| /usr/sbin/sendmail -t -oi";
print SM $message;
close SM;

ヒアドキュメント内はダブルクォートと同様に変数展開されるので、上記のようにメールアドレスを直書きするなどの場合は「@」のエスケープが必要です。