Dovecot 的登录后脚本不起作用

Dovecot 的登录后脚本不起作用

我在 Ubuntu Server 10.10 上运行 Dovecot 1.2.12,并尝试获取登录后脚本来记录用户访问其 IMAP 邮箱的日期和时间。我已阅读Dovecot 维基并将以下内容添加到dovecot.conf:

mail_executable: /usr/lib/dovecot/logon.sh /usr/lib/dovecot/imap

logon.sh 脚本非常简单(将所有用户访问记录到单个文件,再加上 wiki 提供的 touch 方法):

#!/bin/sh 
dt=$(date) 
echo $USER $dt >> /opt/logon 
touch ~/.last_login

使用如上所示的 mail_executable 行,当用户尝试登录时,脚本成功运行,但访问 IMAP 服务器失败(客户端是在同一台机器上运行的 Roundcube webmail 和 MS Outlook)。/var/log/mail.log 不是很有启发性。登录正常记录,然后什么也没有:

dovecot: imap-login: Login: user=<username>, method=PLAIN, rip=172.16.2.26, lip=172.16.2.26, secured

将脚本放在 IMAP 可执行文件之后,如下所示:

mail_executable: /usr/lib/dovecot/imap /usr/lib/dovecot/logon.sh

导致 IMAP 功能正常,但脚本无法运行。

dovecot -n 的输出:

# 1.2.12: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.35-32-server x86_64 Ubuntu 10.10 ext4
log_timestamp: %Y-%m-%d %H:%M:%S
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable: /usr/lib/dovecot/imap-login
mail_privileged_group: mail
mail_location: maildir:/home/%u/Maildir
mail_debug: yes
mbox_write_locks: fcntl dotlock
mail_executable: /usr/lib/dovecot/logon.sh /usr/lib/dovecot/imap
auth default:
  passdb:
    driver: pam
  userdb:
    driver: passwd

我感觉我忽略了一些显而易见的东西。请帮忙!提前致谢。

答案1

文档建议你更改该 mail_executable参数。

mail_executable: /usr/lib/dovecot/logon.sh

并且从脚本中调用 IMAP/POP 二进制文件。检查文档中的以下注释

# Finally execute the imap/pop3 binary. If you use both, you'll need two scripts.
exec /usr/local/libexec/dovecot/imap "$@"

我不确定版本 1.x 是否支持通过以下方式指定多个脚本mail_executable

相关内容