Re: [PATCH v3 2/3] send-email: retrieve Message-ID from outlook SMTP server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On 23 Apr 2025, at 9:04 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> 
> Aditya Garg <gargaditya08@xxxxxxxx> writes:
> 
>>>> On 23 Apr 2025, at 3:36 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
>>> 
>>> Aditya Garg <gargaditya08@xxxxxxxx> writes:
>>> 
>>>> Outlook does not accept the Message-ID header in the email body. Instead
>>>> it saves it in its own proprietary X-Microsoft-Original-Message-ID
>>>> header and a random Message-ID is set my the server. As a result,
>>>> replying to threads does not work.
>>>> 
>>>> The $smtp->message variable in this script for outlook is something like
>>>> this:
>>>> 
>>>> 2.0.0 OK <Message-ID> [Hostname=Some-hostname]
>>>> 
>>>> This contains the Message-ID set by Microsoft in the first <>.
>>>> 
>>>> This patch retrieves the Message-ID from this server response
>>>> and sets it in the email headers instead of using the self generated one.
>>> 
>>> Hmph.
>>> 
>>> send_message calls gen_header as the first thing.  This prepares the
>>> usual From:/To:/Subject:/Date:/Message-ID: lines and returns the
>>> header text as well as recipient addresses broken out into different
>>> classes, among other things.
>>> 
>>>> Signed-off-by: Aditya Garg <gargaditya08@xxxxxxxx>
>>>> ---
>>>> git-send-email.perl | 11 +++++++++++
>>>> 1 file changed, 11 insertions(+)
>>>> 
>>>> diff --git a/git-send-email.perl b/git-send-email.perl
>>>> index a6cafda29c..216b23caa5 100755
>>>> --- a/git-send-email.perl
>>>> +++ b/git-send-email.perl
>>>> @@ -1799,6 +1799,17 @@ sub send_message {
>>> 
>>> And before these pre-context lines, the composed $header that
>>> contains the message_id has already been sent by calling datasend()
>>> method on the smtp object.  After that, we are ...
>>> 
>>>>           $smtp->datasend("$line") or die $smtp->message;
>>>>       }
>>> 
>>> ... sending the body of the e-mail here.
>>> 
>>> So it is not clear to me how ovewriting the $message_id variable
>>> after the message with $header with "Message-ID:" line that
>>> contained the ID we generated has already given to the SMTP server.
>>> What the code is doing certainly contradicts with what the proposed
>>> log message explains it does, i.e.
>>> 
>>>   ... sets it in the email headers instead of using ...
>>> 
>>> It would affect the message-ID that is used by subsequent messages
>>> when they are sent as replies to this message.  I do not think we
>>> computed the header (the In-Reply-To: field) for the next message
>>> at this point of the code, and I can well believe that mucking with
>>> the $message variable at this point would make the next message
>>> correctly a response to this one.
>>> 
>>> Perhaps you meant that Outlook DISCARDS the Message-ID: field in the
>>> message it was instructed to send out, and INSERTS its own?  Then I
>>> can see how this patch would improve the situation, but the last
>>> paragraph in the proposed log message needs to be rewritten.
>> 
>> Exactly. We don't care what message id the script is sending here. We just
>> send the first mail, and then retrieve the message ID that was set by outlook.
>> 
>> 
>> Then we change the variable so that In-reply-to and References work properly.
>> 
>>>   After sending a message, retrieve the message-ID the Outlook
>>>   server assigned to the message and store it in $message_id
>>>   variable; this value will be used when next and subsequent
>>>   message are sent as replies to the message, preserving the
>>>   threading of the messages.
>>> 
>>> or something.
>>> 
>> 
>> I'll change the log message, although it seemed clear to me.
> 
> Sounds good.  What confused me was "and sets it in the email
> headers" in the proposed log message looked as if it was referring
> to the Message-ID: field of the message we retrieved the ID Outlook
> would assign to it, i.e. as if the order of events were (0) we grab
> an ID from Outlook, (1) we compose the header, embedding the ID in
> its Message-ID: field, (2) we send the result out.  What happens in
> reality, if I understand you correctly, is that (0) we compose the
> header, with our message-ID in its Message-ID: field, (1) Outlook
> discard our Message-ID: field, replaces it with its own, (2) we can
> learn the ID Outlook used, and (3) we'll pretend as if that ID is
> what we gave the message we just sent in the first place, which
> would be used in In-Reply-To: field of the messages sent as replies
> to it, but it was unclear from the description which one you meant.

You understood correctly. I've already sent a v4 with detailed description as well
> 
> Thanks.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux