.." />

道具としてのコンピュータ

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