cronで日本語メール送信すると文字化けします。

どのように回避すれば良いのでしょうか?

test.sh (UTF-8 LF)
--------
env LANG=ja_JP.UTF8 echo "添付ファイル化されてしまう" | nkf -w8 -Lu | tr -d '\r' | mail -s "日本語" 'myaddress@example.com'
--------

このスクリプトをSSH接続してシェルから実行する
$ test.sh
と、文字化けせずにメール受信できるのですが、
cronから実行すると
日本語部分がクエスチョンマーク(?)に文字化けしてしまいます。

cronジョブのシェルスクリプトで日本語メール送信
するのはどうすれば良いのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:2008/08/06 11:58:42
  • 終了:2008/08/06 17:19:47

ベストアンサー

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402008/08/06 14:13:23

ポイント100pt

詳細な原因は不明だが、コマンドラインからの実行がOKなのなら環境変数の問題が一番にあがってくる。

提示されているコマンドだと環境変数 LANG が適用されるのは echo コマンドだけなので

その他のコマンドにはログインユーザーの環境変数が使用されていると思われる。

#!/bin/sh
export LANG=ja_JP.UTF8
echo "添付ファイル化されてしまう" | nkf -w8 -Lu | tr -d '\r' | mail -s "日本語" 'myaddress@example.com'

としてみて、それでもダメなら LANG を他の値に変えてみては同でしょうか?

id:zd2

ありがとうございます!

レンタルサーバのcronなのでテストに時間がかかりますが試してみます。

ありがとうございます!!

2008/08/06 14:46:12

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません