[Exim] [Updated Patch] Make domain-part of message-id config… |
This message is part of the following thread: | |
---|---|
the complete thread tree sorted by date | |
Sheldon Hearn at |
The patch is straightforward, I basically just copied the code for message_id_header_text. An update for spec.txt is included. cu andreas -- Hey, da ist ein Ballonautomat auf der Toilette! vim:ls=2:stl=***\ Sing\ a\ song.\ *** -- diff -Nur exim-4.10.orig/doc/spec.txt exim-4.10/doc/spec.txt --- exim-4.10.orig/doc/spec.txt Mon Jul 22 10:59:53 2002 +++ exim-4.10/doc/spec.txt Sat Nov 9 14:58:48 2002 @@ -7793,6 +7793,14 @@ This option specifies how much of a message's body is to be included in the $message_body and $message_body_end expansion variables.
+message_id_header_domain Type: string* Default: unset + + If this variable is set, the string is expanded and used as right + hand side (domain-part) of the Message-id: header that Exim creates if an + incoming message does not have one. If this is unset the primary + hostname will be used. Only the characters A-Z, a-z, 0-9, . and - are + accepted, all others are replaced by hyphens. + message_id_header_text Type: string* Default: unset
If this variable is set, the string is expanded and used to augment the @@ -17142,9 +17150,10 @@ header line, Exim adds one to the message. If there are any Resent-: headers in the message, it creates Resent-Message-id:. The id is constructed from Exim's internal message id, preceded by the letter E to ensure it starts with -a letter, and followed by @ and the primary host name. Additional information -can be included in this header line by setting the "message_id_header_text" -option. +a letter, and followed by @ and the primary host name. If +"message_id_header_domain" is set its value is used instead of the primary +host name. Additional information can be included in this header line by +setting the "message_id_header_text" option.
43.10 The Received: header line diff -Nur exim-4.10.orig/src/globals.c exim-4.10/src/globals.c --- exim-4.10.orig/src/globals.c Mon Jul 22 10:59:48 2002 +++ exim-4.10/src/globals.c Sat Nov 9 14:52:38 2002 @@ -521,6 +521,7 @@ uschar *message_headers = NULL; uschar *message_id; uschar *message_id_text = NULL; +uschar *message_id_domain = NULL; uschar message_id_option[MESSAGE_ID_LENGTH + 3]; uschar *message_id_external; int message_linecount = 0; diff -Nur exim-4.10.orig/src/globals.h exim-4.10/src/globals.h --- exim-4.10.orig/src/globals.h Mon Jul 22 10:59:49 2002 +++ exim-4.10/src/globals.h Sat Nov 9 14:52:38 2002 @@ -314,6 +314,7 @@ extern uschar *message_id_external; /* External form of following */ extern uschar *message_id; /* Internal id of message being handled */ extern uschar *message_id_text; /* Expanded to form message_id */ +extern uschar *message_id_domain; /* Expanded to form domain-part of message_id */ extern int message_linecount; /* As it says */ extern BOOL message_logs; /* TRUE to write message logs */ extern int message_size; /* Size of message */ diff -Nur exim-4.10.orig/src/readconf.c exim-4.10/src/readconf.c --- exim-4.10.orig/src/readconf.c Mon Jul 22 10:59:50 2002 +++ exim-4.10/src/readconf.c Sat Nov 9 14:52:38 2002 @@ -110,6 +110,7 @@ { "lookup_open_max", opt_int, &lookup_open_max }, { "max_username_length", opt_int, &max_username_length }, { "message_body_visible", opt_mkint, &message_body_visible }, + { "message_id_header_domain", opt_stringptr, &message_id_domain }, { "message_id_header_text", opt_stringptr, &message_id_text }, { "message_logs", opt_bool, &message_logs }, { "message_size_limit", opt_stringptr, &message_size_limit }, diff -Nur exim-4.10.orig/src/receive.c exim-4.10/src/receive.c --- exim-4.10.orig/src/receive.c Mon Jul 22 10:59:50 2002 +++ exim-4.10/src/receive.c Sat Nov 9 14:52:38 2002 @@ -1786,6 +1786,31 @@ if (msgid_header == NULL) { BOOL use_default = TRUE; + /* use primary_hostname or message_id_domain for domain-part + * of Message-ID */ + char *my_message_id_domain; + if (message_id_domain != NULL) + { + my_message_id_domain = expand_string(message_id_domain); + if ((my_message_id_domain != 0) && (*my_message_id_domain != 0)) + { + uschar *ee; + for (ee = (uschar *)my_message_id_domain; *ee != 0; ee++) + /* Accept only a-z A-Z - and . + * 45 is -, 122 is z */ + if ((*ee) < 45 || (*ee) > 122 || strchr("/<>;:?=@[]\\^_`", (*ee)) != NULL) *ee = '-'; + } + else + { + log_write(0, LOG_MAIN|LOG_PANIC, + "expansion of \"%s\" (message_id_header_domain) " + "failed: %s", message_id_domain, expand_string_message); + my_message_id_domain=primary_hostname; + } + } + else + my_message_id_domain=primary_hostname; + if (message_id_text != NULL) { uschar *e = expand_string(message_id_text); @@ -1797,7 +1822,7 @@ for (ee = (uschar *)e; *ee != 0; ee++) if (mac_iscntrl_or_special(*ee)) *ee = '-'; header_add(htype_id, "%sMessage-Id: <%s.%s@%s>\n", resent_prefix, - message_id_external, e, primary_hostname); + message_id_external, e, my_message_id_domain); use_default = FALSE; } } @@ -1808,7 +1833,7 @@ } if (use_default) header_add(htype_id, "%sMessage-Id: <%s@%s>\n", resent_prefix, - message_id_external, primary_hostname); + message_id_external, my_message_id_domain); }
This message was posted to the following mailing lists: | ||||
---|---|---|---|---|
Exim-users Mailing List Info | Nearby Messages | Re: [Exim] Exim4 + Mailscanner | [Exim] How fix exim.conf to allow *sending* with messed up hostname? |
Tahini and Hummus and Cumin Development Archives administrated by cumin Admins | Lurker (version 2.3) |