• 締切済み

sendmailで本文が文字化けします

sendmailを使ってメールを送信していますが、下記処理中で、charsetの指定を入れないと本文は文字化けしないのですが、指定を入れると文字化けしてしまいます。 ※ちなみに、OutlookExpressはどの場合でも文字化けしないで受信できました。 どなたかご存知のかた教えていただけないでしょうか。 ソースは以下のような感じです。 require "/XXX/jcode.pl";# 文字列変換 require "/XXX/mimew.pl";# MIME エンコード # メールHEADER作成 $head = "From: $FromUser\n"; $head .= "To: $ToUser\n"; $head .= "Subject: $Subject\n"; $head .= "Mime-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; $head .= "Content-Transfer-Encoding: 7bit\n"; $head .= "\n"; # JISコード変換 $code = &jcode'convert(*head, 'jis'); # エンコード $header = &mimeencode($head); # メール本文作成 $body = "メール送信のテストです\n"; $code = &jcode'convert(*body, 'jis'); if (open(MAIL,"|/usr/lib/sendmail -f $FromUser $ToUser")){ print MAIL $header; print MAIL $body; print MAIL "\n\n"; close(MAIL); }

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> print MAIL $body; print MAIL $code; ――では。

mahi2011
質問者

補足

print MAIL $body; の部分を print MAIL $code; に修正して送信してみましたが、本文には何も出力されませんでした。 &jcode'convert(*body, 'jis'); の部分については、 $code = &jcode'convert(*body, 'jis'); という記述ではなく、上記のとおりとするのが通常でしょうか。