[Dovecot] deliver w/quotas - MDN after accept mail?
Ken A
ka at pacific.net
Tue Sep 25 22:58:44 EEST 2007
thanks! -e did it.
Ken
pod wrote:
>>>>>> "KA" == Ken A <ka at pacific.net> writes:
>
> KA> I'm testing deliver with sendmail and fs quotas.
>
> KA> On an over quota condition, deliver accepts the mail, deletes it,
> KA> then issues a MDN immediately.
>
> KA> Is there a way to get deliver to soft fail like procmail does with
> KA> a 400 error and queue the mail, then let sendmail handle the MDN,
> KA> following it's "confTO_QUEUEWARN" and "confTO_QUEUERETURN" ?
>
> Last time I looked at deliver it seemed like there were very few
> conditions it considered as a temporary failure and thus for it to return
> EX_TEMPFAIL. I also was considering over-quota conditions (also
> filesystem quotas).
>
> The '-e' option to deliver will, possibly by accidental side-effect, avoid
> calling the deliver-generated bounce code. Instead deliver will write
> some error text on stderr and exit EX_NOPERM.
>
> The code in question is src/deliver/deliver.c lines 810 -- 835 which
> occurs right after attempting to save the message (i.e. ret is the return
> code from the save attempt). The '-e' option is what sets
> stderr_rejection.
Tried with -e, but sendmail says EX_NOPERM is a permanent error, and
issues it's own DSN immediately. "dsn=5.0.0, stat=Insufficient
permission". :-(
Ken
>
> if (ret < 0) {
> const char *error, *msgid;
> bool syntax, temporary_error;
> int ret;
>
> error = mail_storage_get_last_error(storage, &syntax,
> &temporary_error);
> if (temporary_error)
> return EX_TEMPFAIL;
>
> msgid = mail_get_first_header(mail, "Message-ID");
> i_info("msgid=%s: Rejected: %s",
> msgid == NULL ? "" : str_sanitize(msgid, 80),
> str_sanitize(error, 512));
>
> /* we'll have to reply with permanent failure */
> if (stderr_rejection) {
> fprintf(stderr, "%s\n", error);
> return EX_NOPERM;
> }
> ret = mail_send_rejection(mail, destination, error);
> if (ret != 0)
> return ret < 0 ? EX_TEMPFAIL : ret;
> /* ok, rejection sent */
> }
>
> As Timo has said elsewhere "deliver could use a rewrite some day..".
>
--
Ken Anderson
Pacific.Net
More information about the dovecot
mailing list