git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yao Zi <ziyao@disroot.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Aditya Garg <gargaditya08@live.com>
Cc: Julian Swagemakers <julian@swagemakers.org>,
	git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	M Hickford <mirth.hickford@gmail.com>,
	sandals@crustytoothpaste.net, Shengyu Qu <wiagn233@outlook.com>,
	Erik Huelsmann <ehuels@gmail.com>
Subject: Re: [PATCH v5 2/3] send-email: retrieve Message-ID from outlook SMTP server
Date: Sat, 26 Apr 2025 18:11:50 +0000	[thread overview]
Message-ID: <aA0h5t0M2XZLUtvi@pie.lan> (raw)
In-Reply-To: <2025042437-photo-header-2d0d@gregkh>

On Thu, Apr 24, 2025 at 03:09:20PM +0200, Greg Kroah-Hartman wrote:
> On Thu, Apr 24, 2025 at 07:53:54AM +0000, Aditya Garg wrote:
> > The script generates a Message-ID alongwith the other headers when
> > gen_header is called, and is sent alongwith the email. For most email
> > providers, including gmail, the Message-ID goes unchanged to the
> > recipient.
> > 
> > But, this does not seem to be a case with Outlook. In Outlook, when we
> > send our own Message-ID as a part of the headers, it discards it. Then
> > it generates a new random Message-ID and that is what the recipient
> > gets.
> > 
> > This is a problem because the Message-ID is crucial when we are sending
> > multiple emails in a thread. The current implementation for threads in
> > the script replies to the Message-ID it generated, but due to Outlook's
> > behavior, it is not the same as the one that the recipient got, thus
> > breaking threads. So a need arises to retrieve the Message-ID from the
> > server response and set it in the In-Reply-To and References email
> > headers instead of using the self generated one for the purpose of
> > replies.
> > 
> > The $smtp->message variable in this script for outlook is something like
> > this:
> > 
> > 2.0.0 OK <Message-ID> [Hostname=Some-hostname]
> > 
> > The Message-ID here is the one the recipient gets, rather than the one
> > the script generated.
> > 
> > This patch uses the fact above and retrieves the Message-ID from the
> > server response. It then changes the value of the $message_id variable
> > to the one received from the server. This value will be used when next
> > and subsequent messages are sent as replies to the message, thus
> > preserving the threading of the messages.
> > 
> > Signed-off-by: Aditya Garg <gargaditya08@live.com>
> > ---
> >  git-send-email.perl | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> > 
> > diff --git a/git-send-email.perl b/git-send-email.perl
> > index 9ba47a6f38..8c8544f120 100755
> > --- a/git-send-email.perl
> > +++ b/git-send-email.perl
> > @@ -1643,6 +1643,11 @@ sub gen_header {
> >  	return ($recipients_ref, $to, $date, $gitversion, $cc, $ccline, $header);
> >  }
> >  
> > +sub is_outlook {
> > +	my ($host) = @_;
> > +	return ($host eq 'smtp.office365.com' || $host eq 'smtp-mail.outlook.com');
> > +}
> 
> No real objection here, but what about all of the company-hosted outlook
> server systems out there?  Do they need this same type of "flag"?  And
> if so, why not make it a config variable?

Not only Outlook comes with such quirk, AFAIK the mail service that
Tencent provides for personal usage does as well. I don't think it's a
good idea to hardcode the problematic providers.

Not sure whether similar ideas have been proposed earlier: since this
quirk affects only following e-mails but not the coverletter which
doesn't have a In-reply-to field, is it possible to detect the quirk
with the response of sending the coverletter by comparing the desired
Message-ID and the one in response? We could throw a warning and
automatically fixes following mails if the bad case really happens.

This could avoid a broken thread for newcomers and should play well with
an option introduced together for specifying dedicated behaviour.

> thanks,
> 
> greg k-h

Please Cc me on future updates of the series, thank you Aditya.

Best regards,
Yao Zi

  reply	other threads:[~2025-04-26 18:12 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-23 12:19 [PATCH v4 0/3] send-email: add oauth2 support and fix outlook breaking threads Aditya Garg
2025-04-23 12:19 ` [PATCH v4 1/3] send-email: implement SMTP bearer authentication Aditya Garg
2025-04-23 18:04   ` Junio C Hamano
2025-04-23 18:33     ` Aditya Garg
2025-04-24  6:36       ` Greg Kroah-Hartman
2025-04-24  8:23         ` Aditya Garg
2025-04-23 12:19 ` [PATCH v4 2/3] send-email: retrieve Message-ID from outlook SMTP server Aditya Garg
2025-04-23 18:54   ` Junio C Hamano
2025-04-23 22:52   ` brian m. carlson
2025-04-24  3:42     ` Aditya Garg
2025-04-23 12:19 ` [PATCH v4 3/3] send-email: add option to generate passswords like OAuth2 tokens Aditya Garg
2025-04-23 19:03   ` Junio C Hamano
2025-04-24  3:29     ` Aditya Garg
2025-04-24 12:43       ` Junio C Hamano
2025-04-23 20:50 ` [PATCH v4 0/3] send-email: add oauth2 support and fix outlook breaking threads M Hickford
2025-04-24  3:44   ` Aditya Garg
2025-04-24  7:53 ` [PATCH v5 " Aditya Garg
2025-04-24  7:53   ` [PATCH v5 1/3] send-email: implement SMTP bearer authentication Aditya Garg
2025-04-24 12:12     ` Julian Swagemakers
     [not found]     ` <CACOoB6jE=DgpYYaudhqTVDRd2SCz++aog7QYwTQs6-MAD8dBuw@mail.gmail.com>
2025-04-24 18:22       ` Aditya Garg
2025-04-24 19:20         ` Erik Huelsmann
2025-04-25  6:19         ` Julian Swagemakers
2025-04-25  6:25           ` Aditya Garg
2025-04-25  9:45           ` Aditya Garg
2025-04-25 10:17             ` Erik Hulsmann
2025-04-24 18:23       ` Aditya Garg
2025-04-24  7:53   ` [PATCH v5 2/3] send-email: retrieve Message-ID from outlook SMTP server Aditya Garg
2025-04-24 13:09     ` Greg Kroah-Hartman
2025-04-26 18:11       ` Yao Zi [this message]
2025-04-27 20:05         ` Aditya Garg
2025-04-28  4:16           ` Yao Zi
2025-04-27 19:44       ` Aditya Garg
2025-04-24  7:53   ` [PATCH v5 3/3] send-email: add option to generate passswords like OAuth2 tokens Aditya Garg
2025-04-24 12:28     ` Julian Swagemakers
2025-04-24 12:53       ` Aditya Garg
2025-04-24 15:20         ` Junio C Hamano
2025-04-24 15:46           ` Aditya Garg
2025-04-24 16:58             ` Junio C Hamano
2025-04-25 10:09 ` [PATCH v6 0/1] send-email: add oauth2 support and fix outlook breaking threads Aditya Garg
2025-04-25 10:09   ` [PATCH v6 1/1] send-email: retrieve Message-ID from outlook SMTP server Aditya Garg
2025-04-25 15:04     ` Aditya Garg
2025-04-25 16:22       ` Erik Huelsmann
2025-04-25 17:08         ` Junio C Hamano
2025-04-25 19:05           ` Erik Huelsmann
2025-04-25 19:08             ` Aditya Garg
2025-04-25 17:23     ` Junio C Hamano
2025-04-25 19:05       ` Aditya Garg
2025-04-26  8:36       ` Aditya Garg
2025-04-26  9:03         ` Eric Sunshine
2025-04-26 17:40           ` Aditya Garg
2025-04-28 16:52         ` Junio C Hamano
2025-04-28 17:52           ` [PATCH] send-email: add --smtp-outlook-id-tweak option Aditya Garg
2025-04-28 17:57             ` [PATCH v2] " Aditya Garg
2025-04-28 20:47               ` Junio C Hamano
2025-04-29  3:44                 ` Aditya Garg
2025-04-29 10:52             ` [PATCH v3] send-email: add --[no-]outlook-id-fix option Aditya Garg
2025-04-29 11:00               ` Aditya Garg
2025-04-29 15:57               ` Junio C Hamano
2025-04-29 16:24               ` Junio C Hamano
2025-04-29 16:26                 ` Aditya Garg
2025-04-29 16:37             ` [PATCH v4] " Aditya Garg
2025-04-29 23:08               ` Junio C Hamano
2025-04-30  8:31                 ` Aditya Garg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aA0h5t0M2XZLUtvi@pie.lan \
    --to=ziyao@disroot.org \
    --cc=ehuels@gmail.com \
    --cc=gargaditya08@live.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=julian@swagemakers.org \
    --cc=mirth.hickford@gmail.com \
    --cc=sandals@crustytoothpaste.net \
    --cc=wiagn233@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).