メニューを閉じる

テクノデジタルグループ

メニューを開く

2019.06.12

インフラ

【qmail】AmazonLinux+qmail+vpopmail+qmailadmin+autorespondで、autorespondの日本語文字化け対策

JTです。
今時qmailのtipsにどれくらいニーズがあるのかは置いといて、ちょっとしたことですが結構ハマったので残しておきますね。

 【問題】
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

 


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事