This is the one from Git 2.49
Range-diff:
2: 72b3cd1bfb ! 1: 2c47cc5396 send-email: show the new message id assigned by outlook in the logs
@@ Metadata
Author: Aditya Garg <gargaditya08@live.com>
## Commit message ##
- send-email: show the new message id assigned by outlook in the logs
+ docs: add credential helper for yahoo and link Google's sendgmail tool
- 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@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>
- OK. Log says:
- Server: smtp.office365.com
- MAIL FROM:<gargaditya08@live.com>
- RCPT TO:<negahe7142@nomrista.com>
- From: Aditya Garg <gargaditya08@live.com>
- To: negahe7142@nomrista.com
- 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@live.com>
- X-Mailer: git-send-email @GIT_VERSION@
- MIME-Version: 1.0
- Content-Transfer-Encoding: 8bit
-
- Result: 250
-
- This patch fixes this by modifying the $header variable, which is
- responsible for showing the logs at the end. Also, the log which states
- that the Message-ID has been changed will now be shown only when
- smtp-debug is enabled, since the main log having all of the headers is
- anyways displaying the new Message-ID. It should look like this after
- this patch:
-
- OK. Log says:
- Server: smtp.office365.com
- MAIL FROM:<gargaditya08@live.com>
- RCPT TO:<negahe7142@nomrista.com>
- From: Aditya Garg <gargaditya08@live.com>
- To: negahe7142@nomrista.com
- 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@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>
- X-Mailer: git-send-email @GIT_VERSION@
- MIME-Version: 1.0
- Content-Transfer-Encoding: 8bit
-
- Result: 250
+ This commit links `git-credential-yahoo` as a credential helper for
+ Yahoo accounts. Also, Google's `sendgmail` tool has been linked as an
+ alternative method for sending emails through Gmail.
Signed-off-by: Aditya Garg <gargaditya08@live.com>
- ## git-send-email.perl ##
-@@ git-send-email.perl: sub send_message {
- if (is_outlook($smtp_server)) {
- if ($smtp->message =~ /<([^>]+)>/) {
- $message_id = "<$1>";
-- printf __("Outlook reassigned Message-ID to: %s\n"), $message_id;
-+ # Replace the original Message-ID in $header with the new one
-+ $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");
- }
+ ## Documentation/git-send-email.adoc ##
+@@ Documentation/git-send-email.adoc: settings:
+ smtpAuth = OAUTHBEARER
+ ----
+
++Alternatively, you can use a tool developed by Google known as
++https://github.com/google/gmail-oauth2-tools/tree/master/go/sendgmail[sendgmail]
++to send emails using `git send-email`.
++
+ Use Microsoft Outlook as the SMTP Server
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Unlike Gmail, Microsoft Outlook no longer supports app-specific passwords.
+@@ Documentation/git-send-email.adoc: next time.
+
+ If you are using OAuth2.0 authentication, you need to use an access token in
+ place of a password when prompted. Various OAuth2.0 token generators are
+-available online. Community maintained credential helpers for Gmail and Outlook
+-are also available:
++available online. Community maintained credential helpers are also available:
+
+ - https://github.com/AdityaGarg8/git-credential-email[git-credential-gmail]
+ (cross platform, dedicated helper for authenticating Gmail accounts)
+@@ Documentation/git-send-email.adoc: are also available:
+ - https://github.com/AdityaGarg8/git-credential-email[git-credential-outlook]
+ (cross platform, dedicated helper for authenticating Microsoft Outlook accounts)
+
++ - https://github.com/AdityaGarg8/git-credential-email[git-credential-yahoo]
++ (cross platform, dedicated helper for authenticating Yahoo accounts)
++
+ You can also see linkgit:gitcredentials[7] for more OAuth based authentication
+ helpers.
+
1: 63addf9d9b ! 2: bc1d0471ca send-email: fix bug resulting in increased message number if a message is edited
@@ Metadata
Author: Aditya Garg <gargaditya08@live.com>
## Commit message ##
- send-email: fix bug resulting in increased message number if a message is edited
+ docs: improve formatting in git-send-email documentation
- Whenever we send a thread of emails using send-email, a message number
- is internally assigned to each email. This number is used to track the
- order of the emails in the thread. Whenever a new message is processed
- in a thread, the current script logic increases the message number by
- one, which is intended.
+ The current documentation for git-send-email had an inconsistent use of
+ "", ``, and '' for quoting. This commit improves the formatting by
+ using the same style throughout the documentation.
- But, if a message is edited and then resent, its message number again
- gets increased. This is because the script uses the same logic to
- process the edited message, which is uses the send the next message.
+ Also, at some places, minor grammatical errors were fixed, and some
+ non existent links were removed.
- This minor bug is usually harmless unless some special situations arise.
- One such situation is when the first message in a thread is edited
- and resent, and an `--in-reply-to` argument is also passed to send-email.
- In this case if the user has chosen shallow threading, the threading
- does not work as expected, and all messaged become as replies to the
- Message-ID specified in the `--in-reply-to` argument.
-
- The reason for this bug is hidden in the code for threading itself.
-
- if ($thread) {
- if ($message_was_sent &&
- ($chain_reply_to || !defined $in_reply_to || length($in_reply_to) == 0 ||
- $message_num == 1)) {
- $in_reply_to = $message_id;
- if (length $references > 0) {
- $references .= "\n $message_id";
- } else {
- $references = "$message_id";
- }
- }
- }
-
- Here $message_num is the current message number, and $in_reply_to is
- the Message-ID of the message to which the current message is a reply.
- In case `--in-reply-to` is specified, the `$in_reply_to` variable
- is set to the value of the `--in-reply-to` argument.
-
- Whenever this whole set of conditions is true, the script sets the
- `$in_reply_to` variable to the current message's ID. This is done to
- ensure that the next message in the thread is a reply to this message.
-
- In case we specify an `--in-reply-to` argument, and have shallow
- threading, the only condition that can make this true is
- `$message_num == 1`, which is true for the first message in a thread.
- Thus the $in_reply_to variable gets set to the first message's ID.
- For subsequent messages, the `$message_num` variable is always
- greater than 1, and the whole set of conditions is false, and thus the
- $in_reply_to variable remains as the first message's ID. This is what
- we expect in shallow threading. But, in case the user edits the first
- message and resends it, the `$message_num` variable gets increased by 1,
- and thus the condition `$message_num == 1` becomes false. This means
- that the `$in_reply_to` variable is not set to the first message's ID,
- and thus the next message in the thread is not a reply to the first
- message, but to the `--in-reply-to` argument, effectively breaking
- the threading.
-
- In case the user does not specify an `--in-reply-to` argument, the
- !defined $in_reply_to condition is true, and thus the `$in_reply_to`
- variable is set to the first message's ID, and the threading works
- as expected, irrespective of what the message number is.
-
- Just like $message_num, $message_id_serial variable also increases by 1
- whenever a new message is sent. This variable displays the message
- number is the Message-ID of the email.
-
- So, in order to fix this bug, we need to ensure that the $message_num
- variable is not increased by 1 when a message is edited and resent.
- We do this by decreasing the $message_num and $message_id_serial
- variable by 1 whenever the request to edit a message is received. This
- way, the next message in the thread will have the same message number as
- the edited message, and thus the threading will work as expected.
-
- The same logic has also been applied in case the user drops a single
- message from the thread by choosing the "[n]o" option during
- confirmation. By doing this, the next message in the thread is assigned
- the message number of the dropped message, and thus the threading
- works as expected.
+ Finally, the cpan links of necessary perl modules have been added to
+ make their installation easier.
Signed-off-by: Aditya Garg <gargaditya08@live.com>
- ## git-send-email.perl ##
-@@ git-send-email.perl: sub send_message {
- default => $ask_default);
- die __("Send this email reply required") unless defined $_;
- if (/^n/i) {
-+ # If we are skipping a message, we should make sure that
-+ # the next message is treated as the successor to the
-+ # previously sent message, and not the skipped message.
-+ $message_num--;
-+ $message_id_serial--;
- return 0;
- } elsif (/^e/i) {
-+ # Since the same message will be sent again, we need to
-+ # decrement the message number to the previous message.
-+ # Otherwise, the edited message will be treated as a
-+ # different message sent after the original non-edited
-+ # message.
-+ $message_num--;
-+ $message_id_serial--;
- return -1;
- } elsif (/^q/i) {
- cleanup_compose_files();
+ ## Documentation/config/sendemail.adoc ##
+@@ Documentation/config/sendemail.adoc: sendemail.<identity>.*::
+ `sendemail.identity`.
+
+ sendemail.multiEdit::
+- If true (default), a single editor instance will be spawned to edit
++ If `true` (default), a single editor instance will be spawned to edit
+ files you have to edit (patches when `--annotate` is used, and the
+- summary when `--compose` is used). If false, files will be edited one
++ summary when `--compose` is used). If `false`, files will be edited one
+ after the other, spawning a new editor each time.
+
+ sendemail.confirm::
+@@ Documentation/config/sendemail.adoc: sendemail.signedOffCc (deprecated)::
+
+ sendemail.smtpBatchSize::
+ Number of messages to be sent per connection, after that a relogin
+- will happen. If the value is 0 or undefined, send all messages in
++ will happen. If the value is `0` or undefined, send all messages in
+ one connection.
+ See also the `--batch-size` option of linkgit:git-send-email[1].
+
+@@ Documentation/config/sendemail.adoc: sendemail.smtpReloginDelay::
+
+ sendemail.forbidSendmailVariables::
+ To avoid common misconfiguration mistakes, linkgit:git-send-email[1]
+- will abort with a warning if any configuration options for "sendmail"
++ will abort with a warning if any configuration options for `sendmail`
+ exist. Set this variable to bypass the check.
+
+ ## Documentation/git-send-email.adoc ##
+@@ Documentation/git-send-email.adoc: Takes the patches given on the command line and emails them out.
+ Patches can be specified as files, directories (which will send all
+ files in the directory), or directly as a revision list. In the
+ last case, any format accepted by linkgit:git-format-patch[1] can
+-be passed to git send-email, as well as options understood by
++be passed to `git send-email`, as well as options understood by
+ linkgit:git-format-patch[1].
+
+ The header of the email is configurable via command-line options. If not
+@@ Documentation/git-send-email.adoc: There are two formats accepted for patch files:
+ This is what linkgit:git-format-patch[1] generates. Most headers and MIME
+ formatting are ignored.
+
+-2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl'
++2. The original format used by Greg Kroah-Hartman's `send_lots_of_email.pl`
+ script
+ +
+-This format expects the first line of the file to contain the "Cc:" value
+-and the "Subject:" of the message as the second line.
++This format expects the first line of the file to contain the 'Cc:' value
++and the 'Subject:' of the message as the second line.
+
+
+ OPTIONS
+@@ Documentation/git-send-email.adoc: Composing
+ `sendemail.multiEdit`.
+
+ --bcc=<address>,...::
+- Specify a "Bcc:" value for each email. Default is the value of
++ Specify a 'Bcc:' value for each email. Default is the value of
+ `sendemail.bcc`.
+ +
+ This option may be specified multiple times.
+
+ --cc=<address>,...::
+- Specify a starting "Cc:" value for each email.
++ Specify a starting 'Cc:' value for each email.
+ Default is the value of `sendemail.cc`.
+ +
+ This option may be specified multiple times.
+@@ Documentation/git-send-email.adoc: This option may be specified multiple times.
+ Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1])
+ to edit an introductory message for the patch series.
+ +
+-When `--compose` is used, git send-email will use the From, To, Cc, Bcc,
+-Subject, Reply-To, and In-Reply-To headers specified in the message. If
+-the body of the message (what you type after the headers and a blank
+-line) only contains blank (or Git: prefixed) lines, the summary won't be
++When `--compose` is used, `git send-email` will use the 'From', 'To', 'Cc',
++'Bcc', 'Subject', 'Reply-To', and 'In-Reply-To' headers specified in the
++message. If the body of the message (what you type after the headers and a
++blank line) only contains blank (or Git: prefixed) lines, the summary won't be
+ sent, but the headers mentioned above will be used unless they are
+ removed.
+ +
+-Missing From or In-Reply-To headers will be prompted for.
++Missing 'From' or 'In-Reply-To' headers will be prompted for.
+ +
+ See the CONFIGURATION section for `sendemail.multiEdit`.
+
+@@ Documentation/git-send-email.adoc: See the CONFIGURATION section for `sendemail.multiEdit`.
+ the value of the `sendemail.from` configuration option is used. If
+ neither the command-line option nor `sendemail.from` are set, then the
+ user will be prompted for the value. The default for the prompt will be
+- the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not
+- set, as returned by "git var -l".
++ the value of `GIT_AUTHOR_IDENT`, or `GIT_COMMITTER_IDENT` if that is not
++ set, as returned by `git var -l`.
+
+ --reply-to=<address>::
+ Specify the address where replies from recipients should go to.
+ Use this if replies to messages should go to another address than what
+- is specified with the --from parameter.
++ is specified with the `--from` parameter.
+
+ --in-reply-to=<identifier>::
+ Make the first mail (or all the mails with `--no-thread`) appear as a
+@@ Documentation/git-send-email.adoc: illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`:
+ [PATCH v2 2/3] New tests
+ [PATCH v2 3/3] Implementation
+ +
+-Only necessary if --compose is also set. If --compose
++Only necessary if `--compose` is also set. If `--compose`
+ is not set, this will be prompted for.
+
+ --[no-]outlook-id-fix::
+ Microsoft Outlook SMTP servers discard the Message-ID sent via email and
+ assign a new random Message-ID, thus breaking threads.
+ +
+-With `--outlook-id-fix`, 'git send-email' uses a mechanism specific to
++With `--outlook-id-fix`, `git send-email` uses a mechanism specific to
+ Outlook servers to learn the Message-ID the server assigned to fix the
+ threading. Use it only when you know that the server reports the
+ rewritten Message-ID the same way as Outlook servers do.
+@@ Documentation/git-send-email.adoc: to 'smtp.office365.com' or 'smtp-mail.outlook.com'. Use
+
+ --subject=<string>::
+ Specify the initial subject of the email thread.
+- Only necessary if --compose is also set. If --compose
++ Only necessary if `--compose` is also set. If `--compose`
+ is not set, this will be prompted for.
+
+ --to=<address>,...::
+ Specify the primary recipient of the emails generated. Generally, this
+ will be the upstream maintainer of the project involved. Default is the
+ value of the `sendemail.to` configuration value; if that is unspecified,
+- and --to-cmd is not specified, this will be prompted for.
++ and `--to-cmd` is not specified, this will be prompted for.
+ +
+ This option may be specified multiple times.
+
+@@ Documentation/git-send-email.adoc: This option may be specified multiple times.
+ When encountering a non-ASCII message or subject that does not
+ declare its encoding, add headers/quoting to indicate it is
+ encoded in <encoding>. Default is the value of the
+- 'sendemail.assume8bitEncoding'; if that is unspecified, this
++ `sendemail.assume8bitEncoding`; if that is unspecified, this
+ will be prompted for if any non-ASCII files are encountered.
+ +
+ Note that no attempts whatsoever are made to validate the encoding.
+
+ --compose-encoding=<encoding>::
+ Specify encoding of compose message. Default is the value of the
+- 'sendemail.composeEncoding'; if that is unspecified, UTF-8 is assumed.
++ `sendemail.composeEncoding`; if that is unspecified, UTF-8 is assumed.
+
+ --transfer-encoding=(7bit|8bit|quoted-printable|base64|auto)::
+ Specify the transfer encoding to be used to send the message over SMTP.
+- 7bit will fail upon encountering a non-ASCII message. quoted-printable
++ '7bit' will fail upon encountering a non-ASCII message. 'quoted-printable'
+ can be useful when the repository contains files that contain carriage
+- returns, but makes the raw patch email file (as saved from a MUA) much
+- harder to inspect manually. base64 is even more fool proof, but also
+- even more opaque. auto will use 8bit when possible, and quoted-printable
+- otherwise.
++ returns, but makes the raw patch email file (as saved from an MUA) much
++ harder to inspect manually. 'base64' is even more fool proof, but also
++ even more opaque. 'auto' will use '8bit' when possible, and
++ 'quoted-printable' otherwise.
+ +
+ Default is the value of the `sendemail.transferEncoding` configuration
+-value; if that is unspecified, default to `auto`.
++value; if that is unspecified, default to 'auto'.
+
+ --xmailer::
+ --no-xmailer::
+- Add (or prevent adding) the "X-Mailer:" header. By default,
++ Add (or prevent adding) the 'X-Mailer:' header. By default,
+ the header is added, but it can be turned off by setting the
+ `sendemail.xmailer` configuration variable to `false`.
+
+@@ Documentation/git-send-email.adoc: Sending
+ Specify the envelope sender used to send the emails.
+ This is useful if your default address is not the address that is
+ subscribed to a list. In order to use the 'From' address, set the
+- value to "auto". If you use the sendmail binary, you must have
+- suitable privileges for the -f parameter. Default is the value of the
++ value to `auto`. If you use the `sendmail` binary, you must have
++ suitable privileges for the `-f` parameter. Default is the value of the
+ `sendemail.envelopeSender` configuration variable; if that is
+ unspecified, choosing the envelope sender is left to your MTA.
+
+@@ Documentation/git-send-email.adoc: Sending
+ be sendmail-like; specifically, it must support the `-i` option.
+ The command will be executed in the shell if necessary. Default
+ is the value of `sendemail.sendmailCmd`. If unspecified, and if
+- --smtp-server is also unspecified, git-send-email will search
+- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH.
++ `--smtp-server` is also unspecified, `git send-email` will search
++ for `sendmail` in `/usr/sbin`, `/usr/lib` and `$PATH`.
+
+ --smtp-encryption=<encryption>::
+ Specify in what way encrypting begins for the SMTP connection.
+@@ Documentation/git-send-email.adoc: Sending
+ --smtp-domain=<FQDN>::
+ Specifies the Fully Qualified Domain Name (FQDN) used in the
+ HELO/EHLO command to the SMTP server. Some servers require the
+- FQDN to match your IP address. If not set, git send-email attempts
++ FQDN to match your IP address. If not set, `git send-email` attempts
+ to determine your FQDN automatically. Default is the value of
+ `sendemail.smtpDomain`.
+
+@@ Documentation/git-send-email.adoc: $ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...
+ +
+ If at least one of the specified mechanisms matches the ones advertised by the
+ SMTP server and if it is supported by the utilized SASL library, the mechanism
+-is used for authentication. If neither 'sendemail.smtpAuth' nor `--smtp-auth`
++is used for authentication. If neither `sendemail.smtpAuth` nor `--smtp-auth`
+ is specified, all mechanisms supported by the SASL library can be used. The
+-special value 'none' maybe specified to completely disable authentication
+-independently of `--smtp-user`
++special value `none` maybe specified to completely disable authentication
++independently of `--smtp-user`.
+
+ --smtp-pass[=<password>]::
+ Password for SMTP-AUTH. The argument is optional: If no
+@@ Documentation/git-send-email.adoc: Furthermore, passwords need not be specified in configuration files
+ or on the command line. If a username has been specified (with
+ `--smtp-user` or a `sendemail.smtpUser`), but no password has been
+ specified (with `--smtp-pass` or `sendemail.smtpPass`), then
+-a password is obtained using 'git-credential'.
++a password is obtained using linkgit:git-credential[1].
+
+ --no-smtp-auth::
+- Disable SMTP authentication. Short hand for `--smtp-auth=none`
++ Disable SMTP authentication. Short hand for `--smtp-auth=none`.
+
+ --smtp-server=<host>::
+ If set, specifies the outgoing SMTP server to use (e.g.
+ `smtp.example.com` or a raw IP address). If unspecified, and if
+ `--sendmail-cmd` is also unspecified, the default is to search
+- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a
++ for `sendmail` in `/usr/sbin`, `/usr/lib` and `$PATH` if such a
+ program is available, falling back to `localhost` otherwise.
+ +
+ For backward compatibility, this option can also specify a full pathname
+@@ Documentation/git-send-email.adoc: instead.
+ Specifies a port different from the default port (SMTP
+ servers typically listen to smtp port 25, but may also listen to
+ submission port 587, or the common SSL smtp port 465);
+- symbolic port names (e.g. "submission" instead of 587)
++ symbolic port names (e.g. `submission` instead of 587)
+ are also accepted. The port can also be set with the
+ `sendemail.smtpServerPort` configuration variable.
+
+@@ Documentation/git-send-email.adoc: instead.
+ Default value can be specified by the `sendemail.smtpServerOption`
+ configuration option.
+ +
+-The --smtp-server-option option must be repeated for each option you want
++The `--smtp-server-option` option must be repeated for each option you want
+ to pass to the server. Likewise, different lines in the configuration files
+ must be used for each option.
+
+@@ Documentation/git-send-email.adoc: must be used for each option.
+ --smtp-ssl-cert-path::
+ Path to a store of trusted CA certificates for SMTP SSL/TLS
+ certificate validation (either a directory that has been processed
+- by 'c_rehash', or a single file containing one or more PEM format
+- certificates concatenated together: see verify(1) -CAfile and
+- -CApath for more information on these). Set it to an empty string
++ by `c_rehash`, or a single file containing one or more PEM format
++ certificates concatenated together). Set it to an empty string
+ to disable certificate verification. Defaults to the value of the
+ `sendemail.smtpSSLCertPath` configuration variable, if set, or the
+ backing SSL library's compiled-in default otherwise (which should
+@@ Documentation/git-send-email.adoc: must be used for each option.
+ connection and authentication problems.
+
+ --batch-size=<num>::
+- Some email servers (e.g. smtp.163.com) limit the number emails to be
++ Some email servers (e.g. 'smtp.163.com') limit the number of emails to be
+ sent per session (connection) and this will lead to a failure when
+ sending many messages. With this option, send-email will disconnect after
+- sending $<num> messages and wait for a few seconds (see --relogin-delay)
+- and reconnect, to work around such a limit. You may want to
+- use some form of credential helper to avoid having to retype
+- your password every time this happens. Defaults to the
++ sending `$<num>` messages and wait for a few seconds
++ (see `--relogin-delay`) and reconnect, to work around such a limit.
++ You may want to use some form of credential helper to avoid having to
++ retype your password every time this happens. Defaults to the
+ `sendemail.smtpBatchSize` configuration variable.
+
+ --relogin-delay=<int>::
+- Waiting $<int> seconds before reconnecting to SMTP server. Used together
+- with --batch-size option. Defaults to the `sendemail.smtpReloginDelay`
++ Waiting `$<int>` seconds before reconnecting to SMTP server. Used together
++ with `--batch-size` option. Defaults to the `sendemail.smtpReloginDelay`
+ configuration variable.
+
+ Automating
+@@ Documentation/git-send-email.adoc: Automating
+ --no-to::
+ --no-cc::
+ --no-bcc::
+- Clears any list of "To:", "Cc:", "Bcc:" addresses previously
++ Clears any list of 'To:', 'Cc:', 'Bcc:' addresses previously
+ set via config.
+
+ --no-identity::
+@@ Documentation/git-send-email.adoc: Automating
+
+ --to-cmd=<command>::
+ Specify a command to execute once per patch file which
+- should generate patch file specific "To:" entries.
++ should generate patch file specific 'To:' entries.
+ Output of this command must be single email address per line.
+- Default is the value of 'sendemail.toCmd' configuration value.
++ Default is the value of `sendemail.toCmd` configuration value.
+
+ --cc-cmd=<command>::
+ Specify a command to execute once per patch file which
+- should generate patch file specific "Cc:" entries.
++ should generate patch file specific 'Cc:' entries.
+ Output of this command must be single email address per line.
+ Default is the value of `sendemail.ccCmd` configuration value.
+
+@@ Documentation/git-send-email.adoc: Automating
+ Specify a command that is executed once per outgoing message
+ and output RFC 2822 style header lines to be inserted into
+ them. When the `sendemail.headerCmd` configuration variable is
+- set, its value is always used. When --header-cmd is provided
++ set, its value is always used. When `--header-cmd` is provided
+ at the command line, its value takes precedence over the
+ `sendemail.headerCmd` configuration variable.
+
+@@ Documentation/git-send-email.adoc: Automating
+
+ --[no-]chain-reply-to::
+ If this is set, each email will be sent as a reply to the previous
+- email sent. If disabled with "--no-chain-reply-to", all emails after
++ email sent. If disabled with `--no-chain-reply-to`, all emails after
+ the first will be sent as replies to the first email sent. When using
+ this, it is recommended that the first file given be an overview of the
+ entire patch series. Disabled by default, but the `sendemail.chainReplyTo`
+@@ Documentation/git-send-email.adoc: Automating
+ the value of `sendemail.identity`.
+
+ --[no-]signed-off-by-cc::
+- If this is set, add emails found in the `Signed-off-by` trailer or Cc: lines to the
+- cc list. Default is the value of `sendemail.signedOffByCc` configuration
+- value; if that is unspecified, default to --signed-off-by-cc.
++ If this is set, add emails found in the `Signed-off-by` trailer or 'Cc:'
++ lines to the cc list. Default is the value of `sendemail.signedOffByCc`
++ configuration value; if that is unspecified, default to
++ `--signed-off-by-cc`.
+
+ --[no-]cc-cover::
+- If this is set, emails found in Cc: headers in the first patch of
++ If this is set, emails found in 'Cc:' headers in the first patch of
+ the series (typically the cover letter) are added to the cc list
+- for each email set. Default is the value of 'sendemail.ccCover'
+- configuration value; if that is unspecified, default to --no-cc-cover.
++ for each email set. Default is the value of `sendemail.ccCover`
++ configuration value; if that is unspecified, default to `--no-cc-cover`.
+
+ --[no-]to-cover::
+- If this is set, emails found in To: headers in the first patch of
++ If this is set, emails found in 'To:' headers in the first patch of
+ the series (typically the cover letter) are added to the to list
+- for each email set. Default is the value of 'sendemail.toCover'
+- configuration value; if that is unspecified, default to --no-to-cover.
++ for each email set. Default is the value of `sendemail.toCover`
++ configuration value; if that is unspecified, default to `--no-to-cover`.
+
+ --suppress-cc=<category>::
+ Specify an additional category of recipients to suppress the
+@@ Documentation/git-send-email.adoc: Automating
+ --
+ +
+ Default is the value of `sendemail.suppressCc` configuration value; if
+-that is unspecified, default to 'self' if --suppress-from is
+-specified, as well as 'body' if --no-signed-off-cc is specified.
++that is unspecified, default to 'self' if `--suppress-from` is
++specified, as well as 'body' if `--no-signed-off-cc` is specified.
+
+ --[no-]suppress-from::
+- If this is set, do not add the From: address to the cc: list.
++ If this is set, do not add the 'From:' address to the 'Cc:' list.
+ Default is the value of `sendemail.suppressFrom` configuration
+- value; if that is unspecified, default to --no-suppress-from.
++ value; if that is unspecified, default to `--no-suppress-from`.
+
+ --[no-]thread::
+- If this is set, the In-Reply-To and References headers will be
++ If this is set, the 'In-Reply-To' and 'References' headers will be
+ added to each email sent. Whether each mail refers to the
+- previous email (`deep` threading per 'git format-patch'
++ previous email (`deep` threading per `git format-patch`
+ wording) or to the first email (`shallow` threading) is
+- governed by "--[no-]chain-reply-to".
++ governed by `--[no-]chain-reply-to`.
+ +
+-If disabled with "--no-thread", those headers will not be added
+-(unless specified with --in-reply-to). Default is the value of the
++If disabled with `--no-thread`, those headers will not be added
++(unless specified with `--in-reply-to`). Default is the value of the
+ `sendemail.thread` configuration value; if that is unspecified,
+-default to --thread.
++default to `--thread`.
+ +
+ It is up to the user to ensure that no In-Reply-To header already
+-exists when 'git send-email' is asked to add it (especially note that
+-'git format-patch' can be configured to do the threading itself).
++exists when `git send-email` is asked to add it (especially note that
++`git format-patch` can be configured to do the threading itself).
+ Failure to do so may not produce the expected result in the
+ recipient's MUA.
+
+ --[no-]mailmap::
+ Use the mailmap file (see linkgit:gitmailmap[5]) to map all
+ addresses to their canonical real name and email address. Additional
+- mailmap data specific to git-send-email may be provided using the
++ mailmap data specific to `git send-email` may be provided using the
+ `sendemail.mailmap.file` or `sendemail.mailmap.blob` configuration
+ values. Defaults to `sendemail.mailmap`.
+
+@@ Documentation/git-send-email.adoc: Administering
+ Confirm just before sending:
+ +
+ --
+-- 'always' will always confirm before sending
+-- 'never' will never confirm before sending
++- 'always' will always confirm before sending.
++- 'never' will never confirm before sending.
+ - 'cc' will confirm before sending when send-email has automatically
+- added addresses from the patch to the Cc list
++ added addresses from the patch to the Cc list.
+ - 'compose' will confirm before sending the first message when using --compose.
+-- 'auto' is equivalent to 'cc' + 'compose'
++- 'auto' is equivalent to 'cc' + 'compose'.
+ --
+ +
+ Default is the value of `sendemail.confirm` configuration value; if that
+@@ Documentation/git-send-email.adoc: have been specified, in which case default to 'compose'.
+ When an argument may be understood either as a reference or as a file name,
+ choose to understand it as a format-patch argument (`--format-patch`)
+ or as a file name (`--no-format-patch`). By default, when such a conflict
+- occurs, git send-email will fail.
++ occurs, `git send-email` will fail.
+
+ --quiet::
+- Make git-send-email less verbose. One line per email should be
++ Make `git send-email` less verbose. One line per email should be
+ all that is output.
+
+ --[no-]validate::
+@@ Documentation/git-send-email.adoc: edit `~/.gitconfig` to specify your account settings:
+ ----
+
+ If you have multi-factor authentication set up on your Gmail account, you can
+-generate an app-specific password for use with 'git send-email'. Visit
++generate an app-specific password for use with `git send-email`. Visit
+ https://security.google.com/settings/security/apppasswords to create it.
+
+ You can also use OAuth2.0 authentication with Gmail. `OAUTHBEARER` and
+@@ Documentation/git-send-email.adoc: helpers.
+
+ Note: the following core Perl modules that may be installed with your
+ distribution of Perl are required:
+-MIME::Base64, MIME::QuotedPrint, Net::Domain and Net::SMTP.
++
++https://metacpan.org/pod/MIME::Base64[MIME::Base64],
++https://metacpan.org/pod/MIME::QuotedPrint[MIME::QuotedPrint],
++https://metacpan.org/pod/Net::Domain[Net::Domain] and
++https://metacpan.org/pod/Net::SMTP[Net::SMTP].
++
+ These additional Perl modules are also required:
+-Authen::SASL and Mail::Address.
++
++https://metacpan.org/pod/Authen::SASL[Authen::SASL] and
++https://metacpan.org/pod/Mail::Address[Mail::Address].
+
+
+ SEE ALSO
-: ---------- > 3: b9e41e2492 docs: remove credential helper links for emails from gitcredentials
-: ---------- > 4: a6ad7ac810 docs: make the purpose of using app password for Gmail more clear in send-email