【問題】
AmazonLinux+qmail+vpopmail+qmailadmin+autorespondで作られているメールサーバで、autorespondが返す本文/自動返信に引用されるメール本文が文字化けする。
メッセージをqmailadminで作成した場合に起こるが、これはqmailadminがeucベースであるため。
【解決サマリ】
1)本文の文字化け
qmailadminで生成された
/home/vpopmail/domains/hoge.com/user/vacation/message
(EUC-JP (LF))をメール標準(※)の文字コード「ISO-2022-JP」に変換することで解決。
※メールの文字コードは歴史的経緯よりISO-2022-JPがデフォルトとされている
【参照】https://ja.wikipedia.org/wiki/ISO-2022-JP
2)引用文の文字化け
文字化け対策は不可能と思われたため、.qmailで記載されているautorespondのコマンド引数について、オプション(末尾に 0)をつけて送信元のメールを引用させないことで回避した。
【環境】
OS:Amazon Linux AMI LANG:en_US.UTF-8 qmail:qmail-1.03 qmailadmin:qmailadmin-1.2.16 autorespond:autorespond-2.0.5 vpopmail:popmail-5.4.33
【詳細】
1)不在通知設定
qmailadminで不在通知設定を有効とし、不在通知の本文として以下の内容を作成。
お問い合わせいただきありがとうございます。 確認次第、担当の者より回答をさせていただきます。 ※本メールは送信専用です。返信にはご回答できません。
2)文字コード変換
メールサーバにSSHログインし、上記返信ドキュメントが
/home/vpopmail/domains/hoge.com/user/vacation/message
として配置されているので、不要なタイトル、送信元などを削除して本文のみとしたのち、nkf(※)を使用して文字コードをISO-2022-JPに変換
nkf -j --overwrite /home/vpopmail/domains/hoge.com/user/vacation/message
# 上記処理で権限が変わってしまうので以下の対応も行う
chown vpopmail:vchkpw /home/vpopmail/domains/hoge.com/user/vacation/message
※nkfがインストールされていない場合は以下の手順でインストール
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm yum localinstall nkf-2.0.8b-6.2.el6.x86_64.rpm
3)autorespondの本文添付をOFFにする
不在通知設定ONの際にqmailadminにより生成されている.qmail(/home/vpopmail/domains/hoge.com/user/直下)の末尾に「0」を追記
ついでに返信回数上限を3→30位にあげとく
/home/vpopmail/domains/hoge.com/user/Maildir/ | /usr/bin/autorespond 86400 30 /home/vpopmail/domains/hoge.com/user/vacation/message /home/vpopmail/domains/hoge.com/user/vacation 0
以上で、(とりあえず)自動応答時の文字化けはなくなったかと思います。
【autorespondのオプション】
# autorespond -h autorespond: usage: time num message dir [ flag arsender ] time - amount of time to consider a message (in seconds) num - maximum number of messages to allow within time seconds message - the filename of the message to send dir - the directory to hold the log of messages optional parameters: flag - handling of original message: 0 - append nothing 1 - append quoted original message without attachments <default> arsender - from address in generated message, or: + = blank from envelope ! $ = To: address will be used