• 締切済み

linuxからのメールが文字化けとなる

linux文字コードはutf8,linuxからOutlook Expressに送信する。 受信したメールは文字化けとなる。なぜですか。 linuxで、シェルの中で、下記の部分で、送信する。 /sbin/service snmpd start 2>&1 | \ /bin/mail -s "snmpd was restarted tomatically." s@ks.co.jp 上記のソースを見ると、分かると思いますが。 メールの本体について、linuxで、VIモードで、 snmpd を起動中: ^[[60G[ ^[[0;32mOK^[[0;39m ]となっています。 catモードで、見ると、snmpd を起動中: [OK] となっています。 どうすれば、文字化けがなくなれますか。

みんなの回答

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.7

最後と言いつつ、もう一点 > ソースを修正する以外のやり方 /bin/mail をスクリプトに置き換えて、ここでフィルタを通してしまうという手もありますね。非常に乱暴なやり方なのでお勧めしませんが。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.6

うは、ノンストップですな…これで最後にします。 /bin/mail を sed 's/\x1b\[[0-9;]*[mG]//g' | iconv -f UTF-8 -t iso-2022-jp | /bin/mail に置換するフィルタの例です。 sed "s@/bin/mail@sed 's/\\\\x1b\\\\[[0-9;]*[mG]//g' | iconv -f UTF-8 -t iso-2022-jp | /bin/mail@g"

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.5

> なぜ、文字化けとなりますか。 Outlook Expressが、UTF-8の自動検出に対応してないか、ごく僅かな日本語文字列しか無いために、自動検出に失敗しているかのどちらかでしょう。いずれの場合でも、#1 さんがおっしゃるように、Header にコードが指定してあれば化けません。 Outlook Express から UTF-8 のメールを送る際は、適切なHeaderが付加されているはずですが、mail コマンドではHeaderが付加されませんので。 > 何千本のソースを対応しなければならないので、何か作業量を減らす方法とかありますか。 全部がシェルスクリプトで、決まったパターンがあるなら、自動的に書き換えるようなコードを書いて使えば良いと思います。 必ず mail コマンドにパイプするようになっているなら、その直前にフィルタを追加するような、比較的簡単なスクリプトで対応できると思います。頑張ってください。

songyqjp
質問者

お礼

すみません。初心者なので、例をあげてもいいですか。 (1)『全部がシェルスクリプトで、決まったパターンがあるなら、自動的に書き換えるようなコードを書いて使えば良いと思います。』の例

songyqjp
質問者

補足

そして、作業量が大きくなれば、このソースを修正する以外のやり方とかありますか。 よろしくお願いいたします。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.4

ちょっと書いてみました。 何千本ものソースに対応できるかは不明ですが。。。 /sbin/service snmpd start 2>&1 | sed 's/\x1b\[[0-9;]*[mG]//g' | iconv -f UTF-8 -t iso-2022-jp | mail -s .... iso-2022-jp は極めて標準的なので、決め打ちで大丈夫だと思います。

songyqjp
質問者

お礼

ご丁寧にご回答していただいて、ありがとうございます。 すみません。まだ質問があります。 (1)なぜ、文字化けとなりますか。  linux文字コードはutf8,linuxからOutlook Expressに送信する。  受信したメールは文字化けとなる。  Outlook Expressで、utf8のメールを送信しても文字化けとなりません。  これはなぜですか。 (2)何千本のソースを対応しなければならないので、何か作業量を減らす方法とかありますか。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

>「snmpdを起動中」の部分も化けています。 では、serviceコマンドの出力をメールで標準的に用いられる文字コードに変換する /sbin/service snmpd start 2>&1 | iconv -f UTF-8 -t iso-2022-jp | mail -s ..... とか、そもそもメッセージを英語にする LANG=C /sbin/service snmpd start 2>&1 | mail -s ..... などの対応が考えられます。 ただし、それでも [OK] の前後の制御文字列は残ってしまいますので、 > 制御文字列を取り除くようなフィルタを通す必要があります。』はどいうことですか。 sed などを使って、制御文字を削除するということです。

songyqjp
質問者

お礼

どうもありがとうございます。さすがという感じです。 まだ、質問があります。 実際に何千本のソースは上記のような問題があります。 各ソースで、出すメールも違います。 (1)制御文字列を取り除くことについて、  snmpd を起動中: ^[[60G[ ^[[0;32mOK^[[0;39m ]の中に、  制御文字は^[、G、mだけですが、制御文字にいろんな種類があります。  何千本のソースについて、制御文字が違うので、sedの利用方法も違うでしょうと思います。1つのsedの利用方法で、各ソースで、りようできれば、いいかなと思います。 (2)いろんなメーラがあります。Outlook Expressだけではないです。  メーラの文字コードも違います。文字コードをiso-2022-jpに変換しても大丈夫ですか。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

Outlook Express で「snmpdを起動中」の部分も化けているのでしょうか? [OK] の部分だけが化けているのであれば、文字コードの問題ではありません。端末上で文字に色をつけるための制御文字列が生で表示されているだけです。 これが気になるなら、制御文字列を取り除くようなフィルタを通す必要があります。

songyqjp
質問者

補足

(1)「snmpdを起動中」の部分も化けています。Outlook Express でエンコードを手動で、utf8に変更すれば、「snmpdを起動中」の部分の文字化けがなくなります。だが、okの部分はまだ文字化けしています。今は手動で、エンコードを変更してほしくないです。どうすればいいですか。 (2)『制御文字列を取り除くようなフィルタを通す必要があります。』はどいうことですか。

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.1

ヘッダに正しい文字コードが書かれていないか、そもそもヘッダがないかのどちらかでは? http://www.atmarkit.co.jp/fwin2k/win2ktips/711mailchar/mailchar.html 正しいヘッダを付けるか、↑に書かれているようにメーラ側で手動でエンコードを指定して読むかのどちらかでしょう

songyqjp
質問者

補足

Outlook Express でエンコードを手動で、utf8に変更すれば、「snmpdを起動中」の部分の文字化けがなくなります。だが、okの部分はまだ文字化けしています。今は手動で、エンコードを変更してほしくないです。どうすればいいですか。

関連するQ&A

  • linuxからのメールが文字化けとなる

    linux文字コードはutf8,linuxからOutlook Expressに送信する。 受信したメールは文字化けとなる。なぜですか。 linuxで、シェルの中で、下記の部分で、送信する。 /sbin/service snmpd start 2>&1 | \ /bin/mail -s "snmpd was restarted tomatically." s@ks.co.jp 上記のソースを見ると、分かると思いますが。 メールの本体について、linuxで、VIモードで、 snmpd を起動中: ^[[60G[ ^[[0;32mOK^[[0;39m ]となっています。 catモードで、見ると、snmpd を起動中: [OK] となっています。 どうすれば、文字化けがなくなれますか。 Outlook Express でエンコードを手動で、utf8に変更すれば、「snmpdを起動中」の部分の文字化けがなくなります。だが、okの部分はまだ文字化けしています。今は手動で、エンコードを変更してほしくないです。どうすればいいですか。

  • linuxからのメールのタイトルが文字化けとなる

    linux文字コードはutf8,linuxからOutlook Expressに送信する。 受信したメールのタイトルは文字化けとなる。なぜですか。 linuxで、シェルの中で、下記の部分で、送信する。 /sbin/service snmpd start 2>&1 | \ /bin/mail -s "日本語" s@ks.co.jp 上記のソースを見ると、分かると思いますが。 どうすれば、文字化けがなくなれますか。

  • 文字化け

    Red Hat Linux9をインストールして、テキストモード で操作を使用としたところ、ある程度は普通に文字が 見えるのですが、例えばエラーメッセージや Viエディタを使用すると、文字化けがおきてしまい 困ってます。よろしくお願いします。

  • linuxのmailコマンドの文字化けについて

    linuxのmailコマンドの文字化けについて 今Ubuntuマシンを使っているのですけど このマシンでpostfixを使ってgmailサーバーを経由して外部にメールをおくれるように設定してあるのですが、 これでmailコマンドでドコモの携帯にメールを送るとき mail XXX@docomo.ne.jp < (UTF-8のファイル) だと文字化けします。 mail XXX@docomo.ne.jp < (EUCのファイル) だと文字化けしません。 受信側で文字コードを変更すればいいのですが、送信側でなんとかしたいと思いました。 でメールヘッダをみると content-type:が設定されてないようなので、これのcharsetを設定したらうまくいくかもとおもいました。(そこで端末のコードUTF8を設定したい) のですが、postfixのmain.cfのどこをみてもそのような設定はないようです。 もっとmailer側の設定なんだろうか? どこで設定すればいいのかわかる人教えてください

  • ショートメールの文字化けについて

    ドコモのN502IからP209Iへのショートメールはうまくいくのですが、その逆は文字化けしてしまい正常に送信できません。P209IはIモードを解約し、ショートメールだけ使えるように契約しています。 どうすれば文字化けせずに送信できるか教えてください。よろしくお願いいたします。

  • メールの文字化けについて

    昨日から突然YAHOOのフリーメールで メールを送ると文字化けするようになりました。 送信済みメールを見ると確かに途中からわけのわからぬ 文字になっています。 先方からの返事では殆ど文字化け  送信済みのは20%程度文字化け なぜ文字化けは起きるのでしょうか? 対策方法を教えてください。

  • メールの文字が文字化けしてしまうんですが……

    メールで書いた文字が、相手に届くと、文字化けしてしまう ことがあります。 使っているのは、フリーメールなのですが。 文字化けしないときと、 一部、するときと、 全文、してしまうときとあります。 送信ハコで確認すると、たいていは、文字化けした形で 残っています。 が、中には送信箱では文字化けしてないのに、 相手に行くと、文字化けしてしまっているということが あります。 原因はなんでしょうか? どうやったら、直せるのでしょうか? どなたか、教えてください。 お願いします。

  • LINUXサーバーについての質問です。

    LINUXサーバーについての質問です。 http://qiita.com/suin/items/5c4e21fa284497782f71 上記サイトのシェルスクリプトの42行目の PATH=/sbin:/usr/sbin:/bin:/usr/bin は何を意味してるのでしょうか? このシェルスクリプトのファイルの置かれているパスですか? そうであれば、シェルスクリプトには必ずパスを記入するものでしょうか? 教えてください。

  • メールの文字化けについて

    mac osx Snow Leopardを使っています。 メールソフトは内蔵のものを使っているのですが、文字化けが多くて困っています。 症状としては下記の2パターンがあります。 【パターン1】 送ったメールを「文字化けしていた」と言われる。  (送信ボックスで送ったメールを確認したが、文字化けはしていない) 【パターン2】 自分が送ったメールをもう一度見ようと送信ボックスを見たら文字化けしている。ただしテキストエンコーディングを「自動」にすると文字化けしない。 (先方にも文字化けした状態で届いてしまったのかは未確認) ちょっと記憶がふたしかなのでなんともですが、なんとなく文字化けしたメールを送る際に、添付ファイルも何もないのにいつもより時間がかかったような気がします。 どちらの場合も、[a]と[e]の小文字がたくさん並んだような文字化けをしています。 メールの文字化けについて調べたところ、機種依存文字についての記載が多かったのですが、どちらの場合においても機種依存文字(ダイヤ印に?のマーク)は見当たらなかったです。 こうなっている原因はなんでしょうか?また改善策はありますでしょうか? あるいは、なるべく文字化けさせないようにする対策でも構いません。 ご教授頂けましたら幸いです!

    • 締切済み
    • Mac
  • 送信メールの文字化け

     宜しくお願い致します。 ヤフーメールから相手の携帯(vodafone)にメールを送りましたが文字化けしてるとの返信がありました。先日まではこのような事は一度もありませんでした。文字化けしているのは本文のみです        \遵ア\ 潤・潤ツ 潤・ 遵o潤・潤・潤・潤・£ ´遵ム潤聡・醇S潤・ このように文字化けしていました。送信済みフォルダーを調べたらこの一件だけが文字化けした状態で送信されたようです。過去ログで調べましたがよくわかりませんでした。文字化けの原因がお分かりの方宜しくお願い致します。