Sieve で Vacation メールを設定する方法

Enterprise Linux 9
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク

以前構築したメールサーバーに、Vacation(不在時の自動返信機能)を設定する機会があったので記録に残しておきます。

Red Hat Enterprise Linux 9 にメールサーバーを構築(前編)
ここまで、ConoHa の VPS 上に RHEL9 をインストールし、そこに OpenLiteSpeed によるウェブサーバーなどを構築してきました。今回はそこにメールサーバーを構築していこうと思います。方針としては、お決まりの Post...

環境

  • OS:AlmaLinux release 9.7 (Moss Jungle Cat)
  • Dovecot 2.3.16
  • Dovecot Pigeonhole 2.3.16
  • SnappyMail 2.38.2

バーチャルユーザーが共有ホームディレクトリを使う構成なので、いつもお世話になっているサイト(https://centossrv.com/almalinux/postfix-vacation.shtml)で解説されている .forward ベースの Vacation は使えません。

Sieve の拡張機能として Vacation があるので、今回はそれを使って設定しました。

Dovecot の設定変更

Dovecot の設定ファイルに、Sieve 拡張機能の Vacation を読み込むよう変更します。

/etc/dovecot/local.conf を開き、最終行に追加します。

# Vacation
plugin {
  sieve_extensions = +vacation
}

【方法1】Sieve ファイルの手動設定

/home/vmail/ドメイン名/ユーザー名/sieve/vacation.sieve を作成し、自動返信内容を記述します。

require ["vacation"];

vacation
  :days 7
  :subject "不在のお知らせ"
  :from "user@example.com"
  :addresses ["user@example.com"]
  "ただいま不在のため、返信が遅れます。
緊急の場合は〇〇までご連絡ください。";

days には同じメールアドレスに対して重複返信しないようにする日数を指定します。休暇の日数とかではありません。

sieve ファイルを、sievec コマンドでコンパイルします。

sievec /home/vmail/ドメイン名/ユーザー名/sieve/vacation.sieve

Dovecot から読めるように、所有者をメールユーザー(vmail)に変更しておきます。

chown vmail: /home/vmail/ドメイン名/ユーザー名/sieve/vacation.sieve
chown vmail: /home/vmail/ドメイン名/ユーザー名/sieve/vacation.svbin

Dovecot の設定ファイルに、直接 sieve スクリプトを読み込む設定を追加します。

# Vacation
plugin {
  sieve_extensions = +vacation
  sieve_before = /home/vmail/ドメイン名/ユーザー名/sieve/vacation.sieve
}

読み込むファイルは svbin ではなく、sieve ファイルを指定すれば OK です。

Dovecot を再起動したら、設定したアドレスにメールを送って動作確認してください。

【方法2】SnappyMail を使って設定

一通り設定した後に気が付いたのですが、サーバーに SnappyMail がインストールされている場合は GUI からお手軽に設定することもできます。

SnappyMail にメールユーザーでログインした後「設定」>「フィルター」と辿ります。

「スクリプトを追加」ボタンから Sieve スクリプトを追加する事で【方法1】と同様の設定を行うことができます。

【方法1】で作成したスクリプトをここから削除することもできますが、消えるのは vacation.sieve ファイルだけでした。

/etc/dovecot/local.conf の sieve_before の指定や、vacation.svbin ファイルは残ったままなので、手動設定と併用する場合は注意が必要です。

Vacation メールの DKIM が FAIL になる場合

Vacation メールのヘッダーを確認したところ、DKIM が FAIL になっていました。

Authentication-Results: example.com;
    dkim=none;
    dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=example.com (policy=quarantine);
    spf=pass

この場合は、Postfix の設定に non_smtpd_milters を追加することで解決します。

smtpd_milters     = unix:/run/rspamd/worker-proxy.sock
non_smtpd_milters = unix:/run/rspamd/worker-proxy.sock

まとめ

図らずも二通りのやり方をしましたが、SnappyMail を使って設定する方が圧倒的に楽だし、Dovecot の設定ファイルを触らなくて済むので安全だという事が分かりました。

コメント

タイトルとURLをコピーしました