通常のsendmailインストールがあります。あるユーザーは.forward
次のユーザーを持っています。
# cat ~elrond/.forward
elrond@somewhere
# sendmail -bv elrond+extra@localhost
elrond@somewhere... deliverable: mailer esmtp, host somewhere., user elrond@somewhere
+extra
欠落しているので注意してください。
+extra
これを維持するには何を変更する必要がありますか?一般的な%3
ハッシュマップは.forward
。
答え1
努力するFEATURE(preserve_local_plus_detail)
ファイルに入れて.mc
から書き直すと、.cf
ルールセット5(localaddr
)が変更されます。副作用が発生する可能性があります(たとえば、ローカルメールプログラムが+ verboseをサポートしていない場合など)。
これがエイリアス照会に悪影響を及ぼす場合、おそらく_FFR_ALIAS_DETAIL
これはビルド時間(つまりではない.cf
)オプションですが、テストしたとは言えません。お勧めしません。 ;-)
失敗した場合は、ユーザー制御ファイルだけで要求された操作を実行する唯一の方法は、埋め込みインクルードコンポーネントへの.forward
パスを確認することです。 8.12以降では、これはデフォルト値でなければなりません。confFORWARD_PATH
$h
O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
~/.forward.extra
これにより、ユーザーは電子メールが「ユーザー+追加」アドレスに移動するコントロールを作成できます。
$ sendmail -v -d27.2 -bv elrond+foo
alias(elrond+foo)
alias(elrond+*)
alias(elrond)
alias(elrond)
forward(elrond+foo)
include(/home/elrond/.forward.thishost+foo)
include(/home/elrond/.forward+foo)
include(/home/elrond/.forward.thishost)
include(/home/elrond/.forward)
elrond+foo... deliverable: mailer local, host foo, user elrond
(関数がファイル転送を処理していることがわかりますinclude()
。ファイルを読むときに拡張の概念はありません。)
FEATURE(virtusertable)
おそらくより良いアプローチが他の場所で提案されているように、スクリプトタイプの場合は、定期的にユーザー~/.xforward
ファイルを収集し、デフォルトのダミーユーザーテーブルを構築できます。
答え2
sendmailのローカルメールプログラムとしてprocmailを使用しています。 [ FEATURE(local_procmail)
]
=> $1 この詳細部分を保持している ~elrond/.procmailrc からメッセージをリダイレクト/転送できます。
申し訳ありません。私のprocmailの知識は、1ドルの健全性チェックなどの信頼できる方法を提供するのに十分ではありません。
警告する:elrond + 1とelrond + 2に送信されたメッセージは、2つの別々のメッセージとしてprocmailに転送されます。
答え3
ユーザーが(鳩)ふるいを使用できるようにすることを検討しましたか?
redirect
代わりに、次の例を使用できるようです。fileinto
http://wiki2.dovecot.org/Pigeonhole/Sieve/Examples#Plus_Addressed_mail_filtering