メール送信

モダンなメールの送信法

モダンと言ってもたいした事はありません.仕事で使っているnagios用のスクリプトを見たらjcode.plを使っていて,いつから同じものを使ってるんだろうとぐったりしたのでなんとなく書いてみました.最近の日本語処理はEncode.pmですよ.subjectのMIMEエンコードもこれだけでいいんです.

簡単な送信方法

mailコマンドを使ってメールを送信します.送信できる環境になっているのが前提ですね.気にしないといけないのは,スクリプトにテキストを読込む時にdecodeして,書き出す時にencodeすることです.メールの本体はJISコードで件名(Subject)はMIMEエンコードしましょう.

#!/usr/bin/perl
use utf8;
use Encode;
use strict;
use warnings;

my ( $body, $header, $mail_command );

$body=<<EOD;

台場です.

メールの本文をutf8で書きましょう.
後でjisコードに変換します.

EOD

$header = '要件も日本語で書きましょう';
$header = encode( 'MIME-Header-ISO_2022_JP', $header );
$mail_command = 'mail -s ' . $header . ' foo@hoge.co.jp';

open( MAIL, '|-', $mail_command );
$body = encode('jis', $body);
print MAIL $body;
close MAIL;

簡単でしょ?後は$bodyの作り方を工夫してみてくださいな.