我按照linode上的这个指南设置了我的Ubuntu 12.04.2 LTS上的dovecot和postfix邮件服务器。 该设置要求socket /var/spool/postfix/private/dovecot-lmtp充当虚拟传输。 但是,在我的设置中,服务启动时此套接字文件不存在。 而且我在/etc/dovecot/conf.d/10-master.conf有了lmtp行。
这是关于我的服务器的一些信息。
Linux prosp 3.8.4-linode50 #1 SMP Mon Mar 25 15:50:29 EDT 2013 i686 i686 i386 GNU/Linux root@prosp:/var/spool/postfix/private# ls anvil bsmtp dovecot-auth lmtp mailman relay scache tlsmgr verify auth defer error local proxymap retry scalemail-backend trace virtual bounce discard ifmail maildrop proxywrite rewrite smtp uucp root@prosp:/var/spool/postfix/private# aptitude show postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql Package: postfix State: installed Version: 2.9.6-1~12.04.1 Package: postfix-mysql State: installed Version: 2.9.6-1~12.04.1 Package: dovecot-core State: installed Version: 1:2.0.19-0ubuntu2 Package: dovecot-imapd State: installed Version: 1:2.0.19-0ubuntu2 Package: dovecot-pop3d State: installed Version: 1:2.0.19-0ubuntu2 Package: dovecot-lmtpd State: installed Version: 1:2.0.19-0ubuntu2 Package: dovecot-mysql State: installed Version: 1:2.0.19-0ubuntu2
从10-master.conf部分
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } # Create inet listener only if you can't use the above UNIX socket inet_listener lmtp { # Avoid making LMTP visible for the entire internet address = 127.0.0.1 port = 2424 } }
我想知道为什么它不存在。 我试过重新安装dovecot-lmtpd无济于事。 而且由于lmtp套接字不存在,我的邮件服务器可以发送邮件但不能收到。 收到收到的电子邮件时,邮件日志包含以下行:
May 31 09:05:24 postfix/lmtp[3664]: 2FD80321F4: to=<[email protected]>, relay=none, delay=0.41, delays=0.41/0/0/0, dsn=4.4.1, status=deferred (connect to me.com[private/dovecot-lmtp]: No such file or directory)
dovecot重新启动后的日志:
May 31 11:38:10 host dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) May 31 11:38:10 host dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill) May 31 11:38:10 host dovecot: master: Dovecot v2.0.19 starting up (core dumps disabled) May 31 11:38:11 host postfix/smtpd[5741]: connect from localhost.localdomain[127.0.0.1] May 31 11:38:11 host dovecot: auth-worker: mysql(127.0.0.1): Connected to database mailserver May 31 11:38:11 host postfix/smtpd[5741]: 3F8A24DE2A3: client=localhost.localdomain[127.0.0.1], sasl_method=PLAIN, [email protected] May 31 11:38:11 host postfix/cleanup[5751]: 3F8A24DE2A3: message-id=<[email protected]> May 31 11:38:11 host postfix/qmgr[5683]: 3F8A24DE2A3: from=<[email protected]>, size=938, nrcpt=1 (queue active) May 31 11:38:11 host postfix/smtpd[5741]: disconnect from localhost.localdomain[127.0.0.1] May 31 11:38:11 host postfix/error[5753]: 3F8A24DE2A3: to=<[email protected]>, relay=none, delay=0.05, delays=0.04/0/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to otherdomain.com[private/dovecot-lmtp]: No such file or directory)
任何想法为什么发生这种情况?
看起来我不能使用lmtp作为inet监听器:
May 31 12:22:48 host postfix/lmtp[6798]: connect to localhost[127.0.0.1]:2424: Connection refused May 31 12:22:48 host postfix/lmtp[6798]: connect to localhost[::1]:2424: Connection refused May 31 12:22:48 host postfix/lmtp[6799]: connect to localhost[127.0.0.1]:2424: Connection refused May 31 12:22:48 host postfix/lmtp[6799]: connect to localhost[::1]:2424: Connection refused
我发现虽然我在/etc/dovecot/dovecot.conf有protocols = lmtp pop3 imap ,但是它被/etc/dovecot/conf.d/01-mail-stack-delivery.conf覆盖, /etc/dovecot/conf.d/01-mail-stack-delivery.conf包含protocols = pop3 imap sieve 。 我修改了这个文件,并且lmtp协议已经启动。
已经给出的答案和答案包含了解决scheme的所有部分,这里是我试图将这些信息联系在一起,一直在努力解决同样的问题:
概述 :如果protocols设置中出现service lmtp则Dovecot仅对service lmtp部分起作用。 特别是如果你有一个自定义的dovecot.conf文件,你可能会省略一些东西。
详细信息 (Debian和Ubuntu的扩展):这里的关键步骤,
apt-get install dovecot-lmtpd dovecot.conf (在/etc/dovecot )是否包含该行!include_try /usr/share/dovecot/protocols.d/*.protocol :这是设置protocols地方(具体来说, lmtp.protocol文件包含protocols = $protocols lmtp 现在到service lmtp部分:这应该在conf.d/10-master.conf但可能是空的; 原来的问题在本节中有设置(如果你正在做同样的事情,相应地调整):
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
确保上面的conf.d/10-master.conf包含在你的dovecot.conf (通常使用!include conf.d/*.conf dovecot.conf )
service dovecot reload )此configuration更改才能生效 dovecot -n仔细检查运行configuration:检查protocols是否已设置并包含lmtp ; 检查上面的service auth节也出现了。 dovecot-lmtp套接字名称,现在应该存在,请使用ls -l /var/spool/postfix/private/dovecot-lmtp https://packages.debian.org/sid/dovecot-lmtpd
apt-get install dovecot-lmtpd
这是非常有趣的事情。 我已经完成了我在这里阅读的所有内容。 在我的私人目录是一个
/var/spool/postfix/private/lmtp
但不是
/var/spool/postfix/private/dovecot-lmtp
所以后缀告诉我: