LoginSignup
0
0

More than 1 year has passed since last update.

さくらのレンタルサーバで自動返信設定(メールにおける日本語での件名と送信者名設定)

Last updated at Posted at 2022-10-30

1.プレミアムプランで返信設定

さくらのレンタルサーバでは、プレミアムプランではコントロールパネルで自動返信の設定は行えない。
一方、ビジネス・ビジネスプロプランでは行える。

ただ、コントロールパネルからは設定できないが、サーバ内で直接設定することで返信設定は行なえる。

sshでログインし、対象アカウントのメールボックスに設定したり、scpコマンド、Filezillaなどで設定ファイルをアップロードして返信設定をすることができる。

以下の記事に設定方法が記載されている。

2.自動返信の設定手順概要

参考サイトに手順は記載されていますが、簡単に流れだけ記載する。
ちなみに、設定は自己責任でお願いします。(バックアップを取って問題あればもどしてください)

(1)コントロールパネルから返信設定をするアカウントを作成する。

  • これでサーバ内にアカウントのメールボックスのフォルダと関連ファイルが作成される。
  • メールボックスは以下の場所にある。
/home/[契約ID]/MailBox/[アカウント名]

(2)サーバ内の該当アカウントのメールボックスにある「.mailfilter」ファイルを編集する。

  • 必要に応じて、返信メールファイルをアップロードする。
  • 【注意】「.mailfilter」ファイルを編集した後に、コントロールパネルから設定をすると上書きされて編集が消えます。

※日本語の件名と送信者名を設定するには?

「.mailfilter」ファイルの設定については、前述の参考サイトに記載がある。日本語を使わなければ、参考サイトの内容で十分である。
でも、日本語の件名や送信者の設定については記載がある。
次に、日本語の表示を踏まえた「.mailfilter」の設定を記載する。

3.日本語は文字コード変換、エンコード、そして、文字コードやエンコード方式を表す文字列の付与が必要

「.mailfilter」ファイルに追記する返信設定を以下に記載する。
以下のコマンドの、[設定項目]は、実際の設定値に置き換えられる。
以下のコマンドの「-N」オプションは、メールに受信メールの引用を記載しない設定になります。これがないと、受信したメールが引用される。

cc "| mailbot -N -c 'ISO-2022-JP' -t /home/[契約ID]/MailBox/[アカウント]/[返信内容のメールファイル名] -s '[件名]' -A 'Reply-To: [返信先メールアドレス]' -A 'From: [送信者名]<[送信者アドレス]>' /usr/sbin/sendmail -t"

上記の「件名」と「送信者名」を日本語にするには、設定する日本語を以下のように加工し、設定する。

  1. 文字列を「JISコード(ISO-2022-JP)」か「UTF-8」に変換する。
  2. 上記の値を、「Base64」や「Quoted-Printable」のいずれかでエンコードする。
  3. エンコードされた値に、文字コードやエンコード方式を表す文字列を追記する。

以下のような形式になります。

=?文字セット?エンコード方式?エンコード後の文字列?=

これは、mailfilter特有の設定ではなく、メールに関するコマンド、プログラムをする場合に共通するものになる。

4.Pythonを使ってコマンドを作成

文字コード変換とエンコードを変更する方法はいくらでもありますが、以下、Pythonを使った方法を記載する。
以下は、文字コードはJIS(ISO-2022-JP')、エンコードはBase64。

convert.py
import base64

value = 'テスト文字' 
jis = value.encode('ISO-2022-JP')
b64 = base64.b64encode(jis).decode()
print('=?ISO-2022-JP?B?' + str(b64) + '?=')

折角なので、設定値まるごと作成するPythonコードを記載する。
このコードを、実行すれば、「.mailfilter」に追記するコマンドが生成できる。
返信メールの内容は「reply-mail.txt」という名前で別ファイルにして、「.mailfilter」と同階層に配置する想定。
返信メールファイルはJISに文字コードを変換する。

create-mailfilter.py
import base64

# ==============================
# 設定値(ここだけ値を設定する)
# ==============================
# 契約者ID
contractor = 'test-client' 
# 受信メールアカウント
account = 'test-account'
# 件名
subject = '【お礼】テスト件名'
# 送信者名
sender_name = 'テスト送信者'
# 送信者アドレス
sender_address = 'test@example.com'
# 返信アドレス
reply_address = 'rep@example.com'

# =========================
# 文字コード変換
# =========================
def convert_charset(value):
  jis = value.encode('ISO-2022-JP')
  b64 = base64.b64encode(jis).decode()
  return '=?ISO-2022-JP?B?' + str(b64) + '?='

# =========================
# コマンドテンプレート
# =========================
template = '''
cc "| mailbot -N -c 'ISO-2022-JP' -t /home/%(contractor)s/MailBox/%(account)s/reply-mail.txt -s '%(subject)s' -A 'Reply-To: %(reply_address)s' -A 'From: %(sender_name)s<%(sender_address)s>' /usr/sbin/sendmail -t"
'''

# =========================
# コマンド作成(値の置換)
# =========================
print(template % { \
  'contractor' : contractor, \
  'account' : account, \
  'subject': convert_charset(subject), \
  'sender_name' : convert_charset(sender_name), \
  'sender_address' : sender_address, \
  'reply_address' : reply_address, \
  })



5.参考情報

さくらのレンタルサーバがメールの振り分けなどに使っているのは「maildrop」というアプリである。

返信設定に利用したコマンドは「mailbot」になります。リファレンスは以下になる。

その他、maildropの返信設定の参考になる情報は以下になる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0