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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.