使用此:
define('LOCAL_MAILER_ARGS', 'procmail -t -Yo -a $h -d $u')
在我的sendmail中,mc给出了一个procmail LOGNAME,如
user
而不是
user@domain.com
使用
define('LOCAL_MAILER_ARGS', 'procmail -t -Yo -a $h -d $u@$h')
然后给出
user@localhostname
我的问题是,我们的电子邮件用户的格式为'user@domain.tld'而非'用户' - 因此procmail无法找到例如只有用户地址部分'user'的邮件目录。 如何从sendmails lda call中为procmail提供完整的收件人地址?
编辑:
我会尝试更清楚,看看原因。
我的'虚拟'收件人是a)没有系统用户,并且他们的地址中有不同的域,都使用use_cw_file功能设置。本地邮件程序是procmail和dovecot(+ sieve),它最终也处理虚拟用户。因为dovecot除了要处理例如用户之外还在命名域。 admin@domain1.com和admin@domain2.com在同一台主机上。
所以我需要sendmail将完整地址发送到lda(堆栈)(procmail - > sieve - > dovecot)。
答案 0 :(得分:1)
您可以选择带有prcoamil脚本的procmail邮件程序作为mailertable中的参数(procmail作为本地邮件程序是一个不同的野兽)。
mailertable file:
# deliver messages to domain.tld
# using etc/procmailrcs/domain.tld.rc procmail script
domain.tld procmail:/etc/procmailrcs/domain.tld.rc
访问(表)文件:
to:domain.tls RELAY
评论:
man procmail
)echo '$=w' | sendmail -bt
获取本地电子邮件域列表答案 1 :(得分:0)
$LOGNAME
是本地用户名。我认为没有办法覆盖这个(或者应该有一个)。