通知メールの文字コード

ZABBIX標準の通知メールとsendmessage_smtp_php.shでの通知メールの
デフォルトの文字コードをご教授ください。

ZABBIX標準の通知メールについては、送信先の名前、件名、本文は文字化けしませんが、
sendmessage_smtp_php.shは本文のみ文字化けしてしまいます。
メールはsquirremail 1.4.8-5を使用しております。

OS:Linux 5.5
ZABBIX:2.0.0(1.8.4からのrpmのアップデート)

その他、必要な情報があれば教えてください。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

Zabbix標準のメール送信機能であれば、UTF-8であったと思います。
sendmessage_smtp_php.shに関しては、ISO-2022-JPであったと思い
ます。

昔は、インターネットでのメールの送受信には、ISO-2022-JPを利
用しないと文字化けが発生する可能性があったため、標準的には、
ISO-2022-JPを利用するようにしていました。

恐らく、SquirrelMailの設定時にデフォルトの文字コードが異なる
文字コードを設定されているために文字化けが発生しているのだと
思います。

広瀬です。

横からすいません。PHPのmb_convert_encoding関数ではJISとISO-2022-JPは
若干違いがあるようなので、状況によっては文字化けが起きることがあるようです。

※SquirrelMailだからという訳でもなさそうです。

https://github.com/zabbix-jp/plugins/tree/master/notification/sendmessag...

gitにある通り、元々公開されていたPHP用のスクリプトでは、JISとUTF-8変換していますが、
sendmessage_smtp_php__iso-2022-jp-ms_for_after_PHP5.2.1.shのファイル名で変更
されているものがあります。こちらを使ってみていかがでしょう?

私も大元のPHPスクリプトでは化けることがあったので、自前で書き換えました。

$mail->CharSet = "ISO-2022-JP";
$mailer->FromName = mb_encode_mimeheader(mb_convert_encoding($MAIL_FROMNAME,"ISO-2022-JP","UTF-8"));
$MAIL_SUBJECT = mb_convert_encoding($MAIL_SUBJECT,"ISO-2022-JP","UTF-8");
$mailer->Subject = '=?ISO-2022-JP?B?' . base64_encode($MAIL_SUBJECT) . '?=';
$mailer->Body = mb_convert_encoding($MAIL_MESSAGE,"ISO-2022-JP","UTF-8");

こんな感じですが・・・※適当かつ、アバウトなのでこっちは参考になさらないように。

以上です。