我已经用maildrop替换了Postfix LDA。如果邮箱文件夹不存在,我正在使用的 maildroprc 脚本也会创建它们。
在我的 /etc/postfix/master.cf 中,我定义了 maildrop 服务
maildrop unix - n n - - pipe
flags=ODRhu user=vmail:daemon argv=/usr/bin/maildrop -w 90 -d ${user}@${nexthop}
${extension} ${recipient} ${user} ${nexthop}
Run Code Online (Sandbox Code Playgroud)
当此脚本为帐户创建文件夹时,其中的文件夹和文件属于“守护进程”组,并且 Courier IMAP 不想读取文件夹的内容,因为它期望 username:group 为 vmail:vmail。
如果我将 master.cf 中 maildrop 的服务定义更改为“vmail:vmail”,我会从 maildrop 收到错误
ERR: authdaemon: s_connect() failed: Permission denied Invalid user specified.
Run Code Online (Sandbox Code Playgroud)
并且邮件无法投递。我猜这是因为 maildrop 需要访问由“守护进程”组拥有的 /var/run/courier/authdaemon。但我真的不明白为什么 maildrop 需要访问 authdaemon 文件夹。
创建文件夹的 maildrop 脚本部分:
`test -e $HOME_DIR/$HOST/$USER`
#log "Testing for $HOME_DIR/$HOST subdirectory: result=$RETURNCODE"
# Only continue if directory does NOT exist
if …
Run Code Online (Sandbox Code Playgroud)