有以下的麻烦:当用户超过配额在exim日志中有一个错误消息:
$2012-11-06 14:22:38 1TVfxZ-00086u-U1 == username@domain R=localuser T=dovecot_delivery defer (0): Child process of dovecot_delivery transport returned 75 (could mean temporary error) from command: /usr/libexec/dovecot/dovecot-lda
此外,maillog中有一个错误消息:
Nov 6 13:33:32 mx2 dovecot: lda(username@domain): Error: sieve: msgid=<[email protected]>: failed to store into mailbox 'INBOX': Quota exceeded (mailbox for user is full) Nov 6 13:33:32 mx2 dovecot: lda(username@domain): Error: sieve: script /etc/dovecot/sieve/default.sieve failed with unsuccessful implicit keep
进出口运输:
dovecot_delivery: driver = pipe command = /usr/libexec/dovecot/dovecot-lda -d $local_part@$domain -f $sender_address message_prefix = message_suffix = delivery_date_add envelope_to_add log_output user = vmail temp_errors = 64 : 69 : 70: 71 : 72 : 73 : 74 : 75 : 78
那么,sieve无法存储电子邮件,因为quota,但是为什么它在exim log中没有显示正确的错误? 如何解决?
没有sieve插件:
Nov 6 15:41:00 mx2 dovecot: lda(username@domain): msgid=<[email protected]>: save failed to INBOX: Quota exceeded (mailbox for user is full)
提前致谢!
作为MTA,Exim已收到电子邮件,并将其交给(以MDA的身份)以进行本地处理和交付。 对配额有所了解的德沃科特(Dovecot)存在用户超过配额,无法发送电子邮件,并logging下来的问题。 它也让exim知道交付失败了,所以exim可以做正确的事情,eximlogging出现了一个错误,可能是临时错误。 希望这封电子邮件已经排队或退回给发件人。
您不会说日志中的内容,但是我假设您上面看到的内容与您的期望不符。 问题是,根据谁负责什么,这些日志是非常有意义的,所以你可能需要修改你的期望。
编辑 :“消息仍然在队列中,它将被交付”? 那么日志是正确的。 发件人还没有被告知发送失败,因为MTA还没有决定清洗这笔交易。 一个行为良好的MTA会在一段合理的时间后向发送者发送一个警告 – sendmail默认等待四个小时 – 说收件人还没有收到,但是MTA会继续尝试。 我不知道你的exim是否做到了,你可以试着问发件人,或者检查你的邮件日志。
(快速词汇表:MTA =邮件传输代理,例如exim或sendmail; MDA =邮件传送代理,通常是procmail,但在这里显然是dovecot的lda)。