我在 Ubuntu 14.04.3 下运行 Postfix 2.11、Dovecot 2.2.9 和 MySQL 5.6.27。
我已经配置了 Postfix 来支持虚拟邮箱,但是配额设置似乎存在一些问题。
~$ sudo service postfix reload
* Reloading Postfix configuration...
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_maildir_limit_message=Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_override=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes
...done.
不过,虽然 Postfix 忽略了这些参数,但是配额限制仍然正常工作,因为我在 Dovecot 中也配置了它。如果我向没有剩余空间的邮箱发送邮件,我会得到:
<[email protected]>: host mail.example.com[private/dovecot-lmtp] said: 552
5.2.2 <[email protected]> Quota exceeded (mailbox for user is full) (in
reply to end of DATA command)
我现在真的很困惑。以下是两个问题:
- 为什么 Postfix 忽略了这些参数?
- 我知道发送和接收邮件都是由Postfix来处理的,那么如果Postfix的配额设置不正确,Dovecot如何在接收过程中拒绝邮件?
postconf 输出
答案1
Postfix 不支持开箱即用的配额,有几种不同的设置方法。如果 Dovecot 已经运行,我建议使用它来管理配额。您可以在此页面上找到有关如何设置配额的更多信息:http://www.postfix.org/addon.html#quota
对您问题的回答:
这些参数适用于 VDA 补丁,可能未应用于您的系统:http://vda.sourceforge.net/
有时,postfix 会配置为查询 Dovecot,或者在决定是否接受/退回之前将电子邮件传递给 Dovecot。
postconf
如果您想要确切的答案,请发布命令的输出。
编辑:根据您的配置,此参数:
virtual_transport = lmtp:unix:private/dovecot-lmtp
告诉 postfix 将虚拟邮箱的电子邮件传递给 dovecot 进行投递。它使用 lmtp(搜索它)执行此操作。然后 dovecot 接收电子邮件并根据其配置决定如何处理它。请注意,这不适用于本地用户邮箱(例如 root),仅适用于虚拟邮箱。