Re: [Dovecot] Posfix and Dovecot (dovecot like LDA) and no space left on the disk
Here is the logs:
May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: save failed to INBOX: Not enough disk space May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: rejected: Not enough disk space May 8 06:00:36 mailserver postfix/pickup[27640]: D8B242F9E1: uid=150 from=<> May 8 06:00:36 mailserver postfix/pipe[27978]: 4B3A72F8C0: to=sazima@vendys.net, relay=dovecot, delay=11, delays=11/0.02/0/0.04, dsn=2.0.0, status=sent (delivered via dovecot service) May 8 06:00:36 mailserver postfix/qmgr[18807]: 4B3A72F8C0: removed
Problem is, that:
- spool HAVE ENOUGH space (so postfix has no problem keeps the message in the spool)
- postfix forward message to dovecot
- dovecot accept message, but can not deliver to /home/vmail, because there is no space :-)
- so dovecot lost/delete/refuse message and tells postfix - everything is Ok ?
- postfix cleans qmgr (bacause message has been forward to LDA succesfully I suppose :-) )
Thanks Peter
On Mon, 2011-05-09 at 17:37 +0200, Petr Svacina wrote:
If my server is out of space (disk full) and the postfix is LDA, the new messages a deffered or refused,so postfix send 450 to sender ... But When I use dovecot (1.2.16) like LDA, postfix accept message (even there is no space), forward to dovecot, dovecot REFUSE the message and message is lost !
Dovecot deliver should fail with tempfail, which Postfix should notice and forward to the original sender. If deliver doesn't return tempfail, it's a bug. I'd like to see Postfix logs of when this problem happens.
-- Tato zprava byla prohledana na vyskyt viru a nebezpecneho obsahu antivirovym systemem MailScanner a zda se byt cista.
On 10/05/2011 14:44, Petr Svacina wrote:
Here is the logs:
May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: save failed to INBOX: Not enough disk space May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: rejected: Not enough disk space May 8 06:00:36 mailserver postfix/pickup[27640]: D8B242F9E1: uid=150 from=<> May 8 06:00:36 mailserver postfix/pipe[27978]: 4B3A72F8C0: to=sazima@vendys.net, relay=dovecot, delay=11, delays=11/0.02/0/0.04, dsn=2.0.0, status=sent (delivered via dovecot service) May 8 06:00:36 mailserver postfix/qmgr[18807]: 4B3A72F8C0: removed
To me message ID :
D8B242F9E1
seems a bounce to the sender, if that's correct I don't see troubles with that.
On 10.5.2011, at 15.44, Petr Svacina wrote:
May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: save failed to INBOX: Not enough disk space May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: rejected: Not enough disk space
Oh, it's a rejection.. I guess it's because it's handled the same way as "out of quota". Two things you can do:
a) give -e parameter to deliver, so it exits with the proper code instead of sending a new "rejected" message via sendmail. (I think I should have made this the default in v2.0.. Maybe I could change it in v2.1.)
b) quota_full_tempfail = yes to have it exit with tempfail rather than a permanent failure
Timo Sirainen tss@iki.fi wrote:
On 10.5.2011, at 15.44, Petr Svacina wrote:
May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: save failed to INBOX: Not enough disk space May 8 06:00:36 mailserver dovecot: deliver(sazima@vendys.net): msgid=3DEF56667E754F24B163C9767422C9A9@dlllk.local: rejected: Not enough disk space
Oh, it's a rejection.. I guess it's because it's handled the same way as "out of quota". Two things you can do:
a) give -e parameter to deliver, so it exits with the proper code instead of sending a new "rejected" message via sendmail. (I think I should have made this the default in v2.0.. Maybe I could change it in v2.1.)
b) quota_full_tempfail = yes to have it exit with tempfail rather than a permanent failure
Do you intent any time soon to provide some hook to alow MTA reject in reply to "RCPT TO:" (in SMTP session) messages to over quota mailboxes?
Exit code of "deliver -e" can only be used to reject message in reply to "the final dot" *for single recipient messages*.
-- [pl>en: Andrew] Andrzej Adam Filip : anfi@onet.eu Nachman's Rule: When it comes to foreign food, the less authentic the better. -- Gerald Nachman
On 10.5.2011, at 21.32, Andrzej Adam Filip wrote:
Do you intent any time soon to provide some hook to alow MTA reject in reply to "RCPT TO:" (in SMTP session) messages to over quota mailboxes?
Can you give specifics of what I'd need to do for that? I remember there is some sendmail protocol that is also supported by Postfix (I think), but I can't remember specifics (and a bit lazy to google for it). v2.0 would finally allow easily implementing such service. Hmm. I guess such service would both have to check if the user exists and also the quota value, and give errors about both of them.
On 05/10/2011 08:37 PM, Timo Sirainen wrote:
On 10.5.2011, at 21.32, Andrzej Adam Filip wrote:
Do you intent any time soon to provide some hook to alow MTA reject in reply to "RCPT TO:" (in SMTP session) messages to over quota mailboxes?
Can you give specifics of what I'd need to do for that? I remember there is some sendmail protocol that is also supported by Postfix (I think), but I can't remember specifics (and a bit lazy to google for it). v2.0 would finally allow easily implementing such service. Hmm. I guess such service would both have to check if the user exists and also the quota value, and give errors about both of them.
Both sendmail and postfix support milter protocol/API. Unlike API provided by library the protocol is "not officially" documented. Sendmail/sendmail.cf could also use trivial "socket map" protocol (query->response) [sample Perl scripts implementing it are in contrib directory of sendmail distribution].
IMHO the best honeypot for developers (especially without dovecot expertise) would be simple library providing two functions email_address -> state( does_not_exist, under_quota, over_quota) email_address, message_size -> ( does_not_exist, ....).
participants (4)
-
Andrzej Adam Filip
-
mailing@securitylabs.it
-
Petr Svacina
-
Timo Sirainen