diff -urN src.orig/spool_mbox.c src/spool_mbox.c --- src.orig/spool_mbox.c Thu Sep 9 18:43:10 2004 +++ src/spool_mbox.c Thu Sep 9 18:43:24 2004 @@ -38,6 +38,9 @@ uschar *received; uschar *timestamp; */ + uschar *mbox_delimiter; + uschar *envelope_from; + uschar *envelope_to; if (!spool_mbox_ok) { /* create scan directory, if not present */ @@ -60,6 +63,47 @@ if (mbox_file == NULL) { debug_printf("unable to open file for writing: %s\n", mbox_path); return NULL; + }; + + /* Generate mailbox delimiter */ + mbox_delimiter = expand_string(US"From ${sender_address} ${tod_bsdinbox}\n"); + if (mbox_delimiter != NULL) { + if (mbox_delimiter[0] != 0) { + i = fwrite(mbox_delimiter, 1, Ustrlen(mbox_delimiter), mbox_file); + if (i != Ustrlen(mbox_delimiter)) { + debug_printf("error/short write on writing in: %s", mbox_path); + fclose(mbox_file); + return NULL; + }; + }; + }; + /* Generate X-Envelope-From header */ + envelope_from = expand_string(US"${sender_address}"); + if (envelope_from != NULL) { + if (envelope_from[0] != 0) { + uschar *my_envelope_from; + my_envelope_from = string_sprintf("X-Envelope-From: <%s>\n", envelope_from); + i = fwrite(my_envelope_from, 1, Ustrlen(my_envelope_from), mbox_file); + if (i != Ustrlen(my_envelope_from)) { + debug_printf("error/short write on writing in: %s", mbox_path); + fclose(mbox_file); + return NULL; + }; + }; + }; + /* Generate X-Envelope-To header */ + envelope_to = expand_string(US"${if def:received_for{$received_for}}"); + if (envelope_to != NULL) { + if (envelope_to[0] != 0) { + uschar *my_envelope_to; + my_envelope_to = string_sprintf("X-Envelope-To: <%s>\n", envelope_to); + i = fwrite(my_envelope_to, 1, Ustrlen(my_envelope_to), mbox_file); + if (i != Ustrlen(my_envelope_to)) { + debug_printf("error/short write on writing in: %s", mbox_path); + fclose(mbox_file); + return NULL; + }; + }; }; /* Generate a preliminary Received: header and put it in the file.