Thomas Leuxner put forth on 11/27/2010 11:56 PM:
Am 27.11.2010 um 20:44 schrieb Timo Sirainen:
Nothing in Dovecot's log? Typically this should log an error.
Nov 28 06:49:23 spectre postfix/qmgr[6175]: 4608E408C: from=<vzmaild@ft-ms-l1.serverloft.de>, size=307431, nrcpt=1 (queue active) Nov 28 06:49:23 spectre postfix/lmtp[18445]: 4608E408C: to=<tlx@leuxner.net>, relay=spectre.leuxner.net[private/dovecot-lmtp], delay=2360, delays=2360/0.01/0/0.01, dsn=4.3.0, status=deferred (host spectre.leuxner.net[private/dovecot-lmtp] said: 451 4.3.0 Temporary internal failure (in reply to end of DATA command))
Another mail stuck. Just a hunch: Mails over 128k cause troubleā¦
http://www.dovecot.org/list/dovecot-cvs/2009-April/013190.html Below, I believe, is the code generating the error. And it seems you're absolutely right about the 128KB issue. It seems the lmtpd is trying to append the mail to "/tmp/dovecot.lmtp." if the email is greater than 128KB. Is it possible the permissions you have on /tmp aren't compatible with lmtpd? static void client_input_data_handle(struct client *client) @@ -353,7 +407,11 @@ static void client_input_data_handle(str } } else if (client->state.data_end_idx == DATA_DOT_NEXT_POS) { /* saw a dot at the beginning of line. drop it. */ - client_input_add(client, data, i-1); + if (client_input_add(client, data, i-1) < 0) { + client_destroy(client, "451 4.3.0", + "Temporary internal failure"); + return; + } start = i; client->state.data_end_idx = 0; } else { @@ -366,7 +424,11 @@ static void client_input_data_handle(str rewind = client->state.data_end_idx - DATA_DOT_NEXT_POS + 1; i -= rewind; size -= rewind; } - client_input_add(client, data + start, i-start); + if (client_input_add(client, data + start, i-start) < 0) { + client_destroy(client, "451 4.3.0", + "Temporary internal failure"); + return; + } i_stream_skip(client->input, skip == 0 ? i : skip); if (i < size) { -- Stan