Whenever an email is sent, send-email shows a log at last, which contains all the headers of the email that were received by the receipients. In case outlook changes the Message-ID, a log for the same is shown to the user, but that change is not reflected when the log containing all the headers is displayed. Here is an example of the log that is shown when outlook changes the Message-ID: Outlook reassigned Message-ID to: <PN3PR01MB95973E5ACD7CCFADCB4E298CB865A@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> OK. Log says: Server: smtp.office365.com MAIL FROM:<gargaditya08@xxxxxxxx> RCPT TO:<negahe7142@xxxxxxxxxxxx> From: Aditya Garg <gargaditya08@xxxxxxxx> To: negahe7142@xxxxxxxxxxxx Subject: [PATCH] send-email: show the new message id assigned by outlook in the logs Date: Mon, 26 May 2025 20:28:36 +0530 Message-ID: <20250526145836.4825-1-gargaditya08@xxxxxxxx> X-Mailer: git-send-email @GIT_VERSION@ MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Result: 250 Fix this by updating the $header variable, which has the message ID we internally assigned on the "Message-ID:" header, with the message ID the Outlook server assigned. It should look like this after this patch: OK. Log says: Server: smtp.office365.com MAIL FROM:<gargaditya08@xxxxxxxx> RCPT TO:<negahe7142@xxxxxxxxxxxx> From: Aditya Garg <gargaditya08@xxxxxxxx> To: negahe7142@xxxxxxxxxxxx Subject: [PATCH] send-email: show the new message id assigned by outlook in the logs Date: Mon, 26 May 2025 20:29:22 +0530 Message-ID: <PN3PR01MB95977486061BD2542BD09B67B865A@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> X-Mailer: git-send-email @GIT_VERSION@ MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Result: 250 Signed-off-by: Aditya Garg <gargaditya08@xxxxxxxx> --- git-send-email.perl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/git-send-email.perl b/git-send-email.perl index ac1d5b7070..175b0c184b 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1774,7 +1774,8 @@ sub send_message { if (is_outlook($smtp_server)) { if ($smtp->message =~ /<([^>]+)>/) { $message_id = "<$1>"; - printf __("Outlook reassigned Message-ID to: %s\n"), $message_id; + $header =~ s/^(Message-ID:\s*).*\n/${1}$message_id\n/m; + printf __("Outlook reassigned Message-ID to: %s\n"), $message_id if $smtp->debug; } else { warn __("Warning: Could not retrieve Message-ID from server response.\n"); } -- 2.49.0.windows.1