Exim

Dovecot 篩子和超過配額

  • November 6, 2012

遇到了以下問題:當使用者超過配額時,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

另外,郵件日誌中有一條錯誤消息:

Nov  6 13:33:32 mx2 dovecot: lda(username@domain): Error: sieve: msgid=<5098D961.20608@gmail.com>: 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 無法儲存電子郵件,但為什麼它在 exim 日誌中沒有顯示正確的錯誤?如何修復?

沒有篩子外掛:

Nov  6 15:41:00 mx2 dovecot: lda(username@domain): msgid=<5098F744.7070200@gmail.com>: save failed to INBOX: Quota exceeded (mailbox for user is full)

提前致謝!

exim 以 MTA 的身份收到了電子郵件,並將其交給 dovecot(以 MDA 的身份)進行本地處理和傳遞。知道配額的 Dovecot 存在使用者超過配額的問題,無法傳遞電子郵件,並記錄了這種情況。它還讓 exim 知道傳遞失敗,以便 exim 可以做正確的事情,並且 exim 記錄傳遞時出現錯誤,可能是臨時錯誤。希望該電子郵件已被保留在隊列中或返回給發件人。

您沒有說出您期望在日誌中看到的內容,但我假設您在上面看到的內容與您的期望不符。問題是,根據誰負責什麼,這些日誌非常有意義,因此您可能需要修改您的期望。

編輯:“消息仍在隊列中,它將被傳遞”?那麼日誌是正確的。發件人不應該收到傳送失敗的通知,因為 MTA 還沒有決定放棄這筆交易。表現良好的 MTA 會在一段合理的時間後向發件人發送警告(預設情況下 sendmail 等待四個小時),表示收件人尚未收到,MTA 將繼續嘗試。我不知道你的exim是否這樣做了,你可以嘗試詢問發件人,或者檢查你的郵件日誌。

(快速詞彙表:MTA = 郵件傳輸代理,例如 exim 或 sendmail;MDA = 郵件傳遞代理,通常是 procmail,但這裡顯然是 dovecot 的 lda)。

引用自:https://serverfault.com/questions/445867