Perlで日本語メール送信(1)

基本となる考え方はこう。

ヘッダ
JISコード + MIMEエンコード
本文
JISコード
JISコードでスクリプトやWebページを書く人はいないだろうから文字コードの変換をやることになる。 よく見るのはjcode.plとmimew.plを用いるプログラム。

#! /usr/bin/perl

require "jcode.pl";
require "mimew.pl";

$to = 'mikeda@sample.to';
$from = mimeencode('そうしんもと') . '<mikeda@sample.from>';
$subject = mimeencode('だいめい');
$body = jcode::jis("ほんぶん");

open MAIL, "| /usr/sbin/sendmail -i -t";
print MAIL <<END;
To: $to
From: $from
Subject: $subject
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP

$body
END


しかしShift-JIS、EUCで書いてる人はいいがmimew.plとjcode.plはUTF-8に対応していない。
Linuxで上のプログラムを動作させるにはnkfをかますか変換してから実行する。

$ nkf -e send_utf.pl > send_euc.pl


Jcode.pm、Encode.pmと続くUTF-8に対応した新しいモジュールがあるのだけど、手元にある書籍でもなにも言わずにこれらのライブラリを使ってる。

10日でおぼえる Perl/CGI 入門教室 第2版 (10日でおぼえるシリーズ)

10日でおぼえる Perl/CGI 入門教室 第2版 (10日でおぼえるシリーズ)

Perl/CGI逆引き大全 600の極意

Perl/CGI逆引き大全 600の極意

Windowsユーザがメインターゲットぽいからしかたないか。