[Dovecot] deliver rewrites envelop-sender

Ralf Becker beckerr at fh-trier.de
Wed Jan 10 08:18:19 UTC 2007

Hello Gerhard,

it is maybe a little bit haarsplitting that I'm insisting to find the
original envelop sender in the "From " line (= FROM_ line). But in my
opinion this is part of the mbox format definition.


>           The From_ line always looks like From envsender date
>           moreinfo.  envsender is one word, without spaces or tabs; it
>           is usually the envelope sender of the message. 


>           Here is how a program appends a message to an mbox file.
>           It first creates a From_ line given the message's envelope
>           sender and the current date.  If the envelope sender is
>           empty (i.e., if this is a bounce message), the program uses
>           MAILER-DAEMON instead.  If the envelope sender contains
>           spaces, tabs, or newlines, the program replaces them with
>           hyphens.

Dovecot uses mboxcl2, which basically handles the "From " line like
mboxo (=mbox?)

Indeed it's not a bug to ignore the envelop sender and use "From
MAIL-DEAMON ..." when delivering. But in this case deliver should add
  Return-Path: <envelop-sender>
if not already present

Think about bouncing a already delivered message:

This mail can be bounced
  From beckerr at fh-trier.de  Thu Dec  1 05:12:01 2005
  From: some-list <some-list at list-home.org>
  To: some-list <some-list at list-home.org>
  Subject: test

This message too
  From MAILER-DAEMON  Thu Dec  1 05:12:01 2005
  Return-Path: <beckerr at fh-trier.de>
  From: some-list <some-list at list-home.org>
  To: some-list <some-list at list-home.org>
  Subject: test

But this message can not be bounced, because the envelop sender is unknown:
  From MAILER-DAEMON  Thu Dec  1 05:12:01 2005
  From: some-list <some-list at list-home.org>
  To: some-list <some-list at list-home.org>
  Subject: test

ok... actually this messages could be bounced to, but would be bounced
to the mailing list, which is a bad idea :-)

And something completely different:

I've implemented DELIVER_SKIP_PATH testing. I don't want to publish a
patch for a patch. Do you want to put the new patch on your homepage or
should I but it on mine?

This is what I've added:

[src/mailfold.c @216]
  int isinbox = 0;
  if (s_org_mail) isinbox = !strcmp(s_org_mail, boxname);

// rb - start
  if (trydeliver && program)
    char *skip_path = getenv("DELIVER_SKIP_PATH");
    if (skip_path)
        char *i=skip_path;
        while (*i)
            char *j, *k;

            for (j=i; *j && *j!=':'; j++)
            for (k=j; k>i && k[-1]=='/'; k--)

            if (i!=k && strncmp(boxname,i,k-i)==0 && (boxname[k-i]=='/'
|| !boxname[k-i]))
                yell("skipping delivering through external program for
", boxname);
                program = NULL;
            if (!*j) break;
// rb - end
  if (trydeliver && program && ((!isinbox && !isabsolute) || (isinbox &&
deliver_inbox) || (isabsolute && deliver_absolute_path)) )

Bye, Ralf

Gerhard Wiesinger schrieb am 09.01.2007 18:37:
> Hello!
> Yes, DELIVER_SKIP_PATH would be a good idea. But I really wanted to
> avoid to use procmail at all.
> BTW: What is your problem with the first FROM line, I really didn't
> unterstand the problem there?
> Ciao,
> Gerhard
> -- 
> http://www.wiesinger.com/

 Dipl.-Inform. (FH) Ralf Becker     Rechenzentrum (r/ft) der FH Trier
 (Network|Mail|Web|Firewall)           University of applied sciences
 Administrator                           Schneidershof, D-54293 Trier

 Mail: beckerr at fh-trier.de                      Fon: +49 651 8103 499
 WWW:  http://www.fh-trier.de/~beckerr          Fax: +49 651 8103 214
 PGP:  http://www.fh-trier.de/~beckerr/pgp      ICQ: <available>

 Wenn Gott gewollt haette, dass E-Mail in HTML geschrieben wuerden,
 endeten Gebete traditionell mit </amen>. (Tom Listen)

More information about the dovecot mailing list