道具としてのコンピュータ
2015年5月6日
メールの日本語タイトルを文字化けしないようにする
メールの配信ツールを作成しています(Shellで)。
ところが、日本語の件名が文字化けしてしまって小一時間はまりました…。
備忘録を兼ねてメモします。
・/usr/sbin/sendmailでメールを送る際に、日本語のSubjectを使う場合は、MIMEエンコードをしなければならない
・日本語の件名を、nkfを通して、メールのヘッダーに、Subject:(エンコードした文字列)として貼りこめばよい
具体的には以下のようにします。
以下のようなメールを送りたい場合
From:hoge@foo.com
To:fuga@foo.com
Subject:日本語のタイトル
—ここから本文—
文字列そのものをnkfにぶちこみましょう。
echo "日本語のタイトル" | nkf -W -M -j =?ISO-2022-JP?B?GyRCRnxLXDhsJE4lPyUkJUglaxsoQg==?=
ここで出力された文字列を貼りつけます。
From:hoge@foo.com
To:fuga@foo.com
Subject:=?ISO-2022-JP?B?GyRCRnxLXDhsJE4lPyUkJUglaxsoQg==?=
—ここから本文—
これで受信側は文字化けせず読めるようです。Gmailだと自動的にエンコードされているようなのですが、他のメーラでは文字化けしてしまっていました。
(いまいち文字コードのことは理解しきれていないのだけれども…)
以下のページを参考にさせていただきました。ありがとうございます。
http://d.hatena.ne.jp/hogem/20100122/1264169093
http://qiita.com/gologo13/items/7e83aa15b9269758e4af
Related Posts