'\" t
.\"     Title: git-send-email
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
.\"      Date: 2025-11-02
.\"    Manual: Git Manual
.\"    Source: Git 2.52.0.rc0
.\"  Language: English
.\"
.TH "GIT\-SEND\-EMAIL" "1" "2025-11-02" "Git 2\&.52\&.0\&.rc0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-send-email \- Send a collection of patches as emails
.SH "SYNOPSIS"
.sp
.nf
\fIgit send\-email\fR [<options>] (<file>|<directory>)\&...\:
\fIgit send\-email\fR [<options>] <format\-patch\-options>
\fIgit send\-email\fR \-\-dump\-aliases
\fIgit send\-email\fR \-\-translate\-aliases
.fi
.SH "DESCRIPTION"
.sp
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 \fBgit-format-patch\fR(1) can be passed to \fBgit\fR \fBsend\-email\fR, as well as options understood by \fBgit-format-patch\fR(1)\&.
.sp
The header of the email is configurable via command\-line options\&. If not specified on the command line, the user will be prompted with a ReadLine enabled interface to provide the necessary information\&.
.sp
There are two formats accepted for patch files:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  1." 4.2
.\}
mbox format files
.sp
This is what
\fBgit-format-patch\fR(1)
generates\&. Most headers and MIME formatting are ignored\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  2." 4.2
.\}
The original format used by Greg Kroah\-Hartman\(cqs
\fBsend_lots_of_email\&.pl\fR
script
.sp
This format expects the first line of the file to contain the
\fBCc:\fR
value and the
\fBSubject:\fR
of the message as the second line\&.
.RE
.SH "OPTIONS"
.SS "Composing"
.PP
\-\-annotate
.RS 4
Review and edit each patch you\(cqre about to send\&. Default is the value of
\fBsendemail\&.annotate\fR\&. See the CONFIGURATION section for
\fBsendemail\&.multiEdit\fR\&.
.RE
.PP
\-\-bcc=<address>,\&...\:
.RS 4
Specify a
\fBBcc:\fR
value for each email\&. Default is the value of
\fBsendemail\&.bcc\fR\&.
.sp
This option may be specified multiple times\&.
.RE
.PP
\-\-cc=<address>,\&...\:
.RS 4
Specify a starting
\fBCc:\fR
value for each email\&. Default is the value of
\fBsendemail\&.cc\fR\&.
.sp
This option may be specified multiple times\&.
.RE
.PP
\-\-compose
.RS 4
Invoke a text editor (see GIT_EDITOR in
\fBgit-var\fR(1)) to edit an introductory message for the patch series\&.
.sp
When
\fB\-\-compose\fR
is used,
\fBgit\fR
\fBsend\-email\fR
will use the
\fBFrom\fR,
\fBTo\fR,
\fBCc\fR,
\fBBcc\fR,
\fBSubject\fR,
\fBReply\-To\fR, and
\fBIn\-Reply\-To\fR
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
\fBGit:\fR
prefixed) lines, the summary won\(cqt be sent, but the headers mentioned above will be used unless they are removed\&.
.sp
Missing
\fBFrom\fR
or
\fBIn\-Reply\-To\fR
headers will be prompted for\&.
.sp
See the CONFIGURATION section for
\fBsendemail\&.multiEdit\fR\&.
.RE
.PP
\-\-from=<address>
.RS 4
Specify the sender of the emails\&. If not specified on the command line, the value of the
\fBsendemail\&.from\fR
configuration option is used\&. If neither the command\-line option nor
\fBsendemail\&.from\fR
are set, then the user will be prompted for the value\&. The default for the prompt will be the value of
\fBGIT_AUTHOR_IDENT\fR, or
\fBGIT_COMMITTER_IDENT\fR
if that is not set, as returned by
\fBgit\fR
\fBvar\fR
\fB\-l\fR\&.
.RE
.PP
\-\-reply\-to=<address>
.RS 4
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
\fB\-\-from\fR
parameter\&.
.RE
.PP
\-\-in\-reply\-to=<identifier>
.RS 4
Make the first mail (or all the mails with
\fB\-\-no\-thread\fR) appear as a reply to the given Message\-ID, which avoids breaking threads to provide a new patch series\&. The second and subsequent emails will be sent as replies according to the
\fB\-\-\fR[\fBno\-\fR]\fBchain\-reply\-to\fR
setting\&.
.sp
So for example when
\fB\-\-thread\fR
and
\fB\-\-no\-chain\-reply\-to\fR
are specified, the second and subsequent patches will be replies to the first one like in the illustration below where [\fBPATCH\fR
\fBv2\fR
\fB0/3\fR] is in reply to [\fBPATCH\fR
\fB0/2\fR]:
.sp
.if n \{\
.RS 4
.\}
.nf
[PATCH 0/2] Here is what I did\&.\&.\&.
  [PATCH 1/2] Clean up and tests
  [PATCH 2/2] Implementation
  [PATCH v2 0/3] Here is a reroll
    [PATCH v2 1/3] Clean up
    [PATCH v2 2/3] New tests
    [PATCH v2 3/3] Implementation
.fi
.if n \{\
.RE
.\}
.sp
Only necessary if
\fB\-\-compose\fR
is also set\&. If
\fB\-\-compose\fR
is not set, this will be prompted for\&.
.RE
.PP
\-\-outlook\-id\-fix, \-\-no\-outlook\-id\-fix
.RS 4
Microsoft Outlook SMTP servers discard the Message\-ID sent via email and assign a new random Message\-ID, thus breaking threads\&.
.sp
With
\fB\-\-outlook\-id\-fix\fR,
\fBgit\fR
\fBsend\-email\fR
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\&.
.sp
Without this option specified, the fix is done by default when talking to
\fIsmtp\&.office365\&.com\fR
or
\fIsmtp\-mail\&.outlook\&.com\fR\&. Use
\fB\-\-no\-outlook\-id\-fix\fR
to disable even when talking to these two servers\&.
.RE
.PP
\-\-subject=<string>
.RS 4
Specify the initial subject of the email thread\&. Only necessary if
\fB\-\-compose\fR
is also set\&. If
\fB\-\-compose\fR
is not set, this will be prompted for\&.
.RE
.PP
\-\-to=<address>,\&...\:
.RS 4
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
\fBsendemail\&.to\fR
configuration value; if that is unspecified, and
\fB\-\-to\-cmd\fR
is not specified, this will be prompted for\&.
.sp
This option may be specified multiple times\&.
.RE
.PP
\-\-8bit\-encoding=<encoding>
.RS 4
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
\fBsendemail\&.assume8bitEncoding\fR; if that is unspecified, this will be prompted for if any non\-ASCII files are encountered\&.
.sp
Note that no attempts whatsoever are made to validate the encoding\&.
.RE
.PP
\-\-compose\-encoding=<encoding>
.RS 4
Specify encoding of compose message\&. Default is the value of the
\fBsendemail\&.composeEncoding\fR; if that is unspecified, UTF\-8 is assumed\&.
.RE
.PP
\-\-transfer\-encoding=(7bit|8bit|quoted\-printable|base64|auto)
.RS 4
Specify the transfer encoding to be used to send the message over SMTP\&.
\fB7bit\fR
will fail upon encountering a non\-ASCII message\&.
\fBquoted\-printable\fR
can be useful when the repository contains files that contain carriage returns, but makes the raw patch email file (as saved from an MUA) much harder to inspect manually\&.
\fBbase64\fR
is even more fool proof, but also even more opaque\&.
\fBauto\fR
will use
\fB8bit\fR
when possible, and
\fBquoted\-printable\fR
otherwise\&.
.sp
Default is the value of the
\fBsendemail\&.transferEncoding\fR
configuration value; if that is unspecified, default to
\fBauto\fR\&.
.RE
.PP
\-\-xmailer, \-\-no\-xmailer
.RS 4
Add (or prevent adding) the
\fBX\-Mailer:\fR
header\&. By default, the header is added, but it can be turned off by setting the
\fBsendemail\&.xmailer\fR
configuration variable to
\fBfalse\fR\&.
.RE
.SS "Sending"
.PP
\-\-envelope\-sender=<address>
.RS 4
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
\fBFrom\fR
address, set the value to
\fBauto\fR\&. If you use the
\fBsendmail\fR
binary, you must have suitable privileges for the
\fB\-f\fR
parameter\&. Default is the value of the
\fBsendemail\&.envelopeSender\fR
configuration variable; if that is unspecified, choosing the envelope sender is left to your MTA\&.
.RE
.PP
\-\-sendmail\-cmd=<command>
.RS 4
Specify a command to run to send the email\&. The command should be sendmail\-like; specifically, it must support the
\fB\-i\fR
option\&. The command will be executed in the shell if necessary\&. Default is the value of
\fBsendemail\&.sendmailCmd\fR\&. If unspecified, and if
\fB\-\-smtp\-server\fR
is also unspecified,
\fBgit\fR
\fBsend\-email\fR
will search for
\fBsendmail\fR
in
\fB/usr/sbin\fR,
\fB/usr/lib\fR
and
\fB$PATH\fR\&.
.RE
.PP
\-\-smtp\-encryption=<encryption>
.RS 4
Specify in what way encrypting begins for the SMTP connection\&. Valid values are
\fBssl\fR
and
\fBtls\fR\&. Any other value reverts to plain (unencrypted) SMTP, which defaults to port 25\&. Despite the names, both values will use the same newer version of TLS, but for historic reasons have these names\&.
\fBssl\fR
refers to "implicit" encryption (sometimes called SMTPS), that uses port 465 by default\&.
\fBtls\fR
refers to "explicit" encryption (often known as STARTTLS), that uses port 25 by default\&. Other ports might be used by the SMTP server, which are not the default\&. Commonly found alternative port for
\fBtls\fR
and unencrypted is 587\&. You need to check your provider\(cqs documentation or your server configuration to make sure for your own case\&. Default is the value of
\fBsendemail\&.smtpEncryption\fR\&.
.RE
.PP
\-\-smtp\-domain=<FQDN>
.RS 4
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,
\fBgit\fR
\fBsend\-email\fR
attempts to determine your FQDN automatically\&. Default is the value of
\fBsendemail\&.smtpDomain\fR\&.
.RE
.PP
\-\-smtp\-auth=<mechanisms>
.RS 4
Whitespace\-separated list of allowed SMTP\-AUTH mechanisms\&. This setting forces using only the listed mechanisms\&. Example:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git send\-email \-\-smtp\-auth="PLAIN LOGIN GSSAPI" \&.\&.\&.
.fi
.if n \{\
.RE
.\}
.sp
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
\fBsendemail\&.smtpAuth\fR
nor
\fB\-\-smtp\-auth\fR
is specified, all mechanisms supported by the SASL library can be used\&. The special value
\fBnone\fR
maybe specified to completely disable authentication independently of
\fB\-\-smtp\-user\fR\&.
.RE
.PP
\-\-smtp\-pass[=<password>]
.RS 4
Password for SMTP\-AUTH\&. The argument is optional: If no argument is specified, then the empty string is used as the password\&. Default is the value of
\fBsendemail\&.smtpPass\fR, however
\fB\-\-smtp\-pass\fR
always overrides this value\&.
.sp
Furthermore, passwords need not be specified in configuration files or on the command line\&. If a username has been specified (with
\fB\-\-smtp\-user\fR
or a
\fBsendemail\&.smtpUser\fR), but no password has been specified (with
\fB\-\-smtp\-pass\fR
or
\fBsendemail\&.smtpPass\fR), then a password is obtained using
\fBgit-credential\fR(1)\&.
.RE
.PP
\-\-no\-smtp\-auth
.RS 4
Disable SMTP authentication\&. Short hand for
\fB\-\-smtp\-auth=none\fR\&.
.RE
.PP
\-\-smtp\-server=<host>
.RS 4
If set, specifies the outgoing SMTP server to use (e\&.g\&.
\fBsmtp\&.example\&.com\fR
or a raw IP address)\&. If unspecified, and if
\fB\-\-sendmail\-cmd\fR
is also unspecified, the default is to search for
\fBsendmail\fR
in
\fB/usr/sbin\fR,
\fB/usr/lib\fR
and
\fB$PATH\fR
if such a program is available, falling back to
\fBlocalhost\fR
otherwise\&.
.sp
For backward compatibility, this option can also specify a full pathname of a sendmail\-like program instead; the program must support the
\fB\-i\fR
option\&. This method does not support passing arguments or using plain command names\&. For those use cases, consider using
\fB\-\-sendmail\-cmd\fR
instead\&.
.RE
.PP
\-\-smtp\-server\-port=<port>
.RS 4
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\&.
\fBsubmission\fR
instead of 587) are also accepted\&. The port can also be set with the
\fBsendemail\&.smtpServerPort\fR
configuration variable\&.
.RE
.PP
\-\-smtp\-server\-option=<option>
.RS 4
If set, specifies the outgoing SMTP server option to use\&. Default value can be specified by the
\fBsendemail\&.smtpServerOption\fR
configuration option\&.
.sp
The
\fB\-\-smtp\-server\-option\fR
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\&.
.RE
.PP
\-\-smtp\-ssl
.RS 4
Legacy alias for
\fB\-\-smtp\-encryption\fR
\fBssl\fR\&.
.RE
.PP
\-\-smtp\-ssl\-cert\-path
.RS 4
Path to a store of trusted CA certificates for SMTP SSL/TLS certificate validation (either a directory that has been processed by
\fBc_rehash\fR, or a single file containing one or more PEM format certificates concatenated together: see the description of the
\fB\-CAfile\fR
\fI<file>\fR
and the
\fB\-CApath\fR
\fI<dir>\fR
options of
\m[blue]\fBhttps://docs\&.openssl\&.org/master/man1/openssl\-verify/\fR\m[]
[OpenSSL\(cqs verify(1) manual page] for more information on these)\&. Set it to an empty string to disable certificate verification\&. Defaults to the value of the
\fBsendemail\&.smtpSSLCertPath\fR
configuration variable, if set, or the backing SSL library\(cqs compiled\-in default otherwise (which should be the best choice on most platforms)\&.
.RE
.PP
\-\-smtp\-user=<user>
.RS 4
Username for SMTP\-AUTH\&. Default is the value of
\fBsendemail\&.smtpUser\fR; if a username is not specified (with
\fB\-\-smtp\-user\fR
or
\fBsendemail\&.smtpUser\fR), then authentication is not attempted\&.
.RE
.PP
\-\-smtp\-debug=(0|1)
.RS 4
Enable (1) or disable (0) debug output\&. If enabled, SMTP commands and replies will be printed\&. Useful to debug TLS connection and authentication problems\&.
.RE
.PP
\-\-imap\-sent\-folder=<folder>
.RS 4
Some email providers (e\&.g\&. iCloud) do not send a copy of the emails sent using SMTP to the
\fBSent\fR
folder or similar in your mailbox\&. Use this option to use
\fBgit\fR
\fBimap\-send\fR
to send a copy of the emails to the folder specified using this option\&. You can run
\fBgit\fR
\fBimap\-send\fR
\fB\-\-list\fR
to get a list of valid folder names, including the correct name of the
\fBSent\fR
folder in your mailbox\&. You can also use this option to send emails to a dedicated IMAP folder of your choice\&.
.sp
This feature requires setting up
\fBgit\fR
\fBimap\-send\fR\&. See
\fBgit-imap-send\fR(1)
for instructions\&.
.RE
.PP
\-\-use\-imap\-only, \-\-no\-use\-imap\-only
.RS 4
If this is set, all emails will only be copied to the IMAP folder specified with
\fB\-\-imap\-sent\-folder\fR
or
\fBsendemail\&.imapSentFolder\fR
and will not be sent to the recipients\&. Useful if you just want to create a draft of the emails and use another email client to send them\&. If disabled with
\fB\-\-no\-use\-imap\-only\fR, the emails will be sent like usual\&. Disabled by default, but the
\fBsendemail\&.useImapOnly\fR
configuration variable can be used to enable it\&.
.sp
This feature requires setting up
\fBgit\fR
\fBimap\-send\fR\&. See
\fBgit-imap-send\fR(1)
for instructions\&.
.RE
.PP
\-\-batch\-size=<num>
.RS 4
Some email servers (e\&.g\&.
\fIsmtp\&.163\&.com\fR) 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
\fI<num>\fR
messages and wait for a few seconds (see
\fB\-\-relogin\-delay\fR) 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
\fBsendemail\&.smtpBatchSize\fR
configuration variable\&.
.RE
.PP
\-\-relogin\-delay=<int>
.RS 4
Waiting
\fI<int>\fR
seconds before reconnecting to SMTP server\&. Used together with
\fB\-\-batch\-size\fR
option\&. Defaults to the
\fBsendemail\&.smtpReloginDelay\fR
configuration variable\&.
.RE
.SS "Automating"
.PP
\-\-no\-to, \-\-no\-cc, \-\-no\-bcc
.RS 4
Clears any list of
\fBTo:\fR,
\fBCc:\fR,
\fBBcc:\fR
addresses previously set via config\&.
.RE
.PP
\-\-no\-identity
.RS 4
Clears the previously read value of
\fBsendemail\&.identity\fR
set via config, if any\&.
.RE
.PP
\-\-to\-cmd=<command>
.RS 4
Specify a command to execute once per patch file which should generate patch file specific
\fBTo:\fR
entries\&. Output of this command must be single email address per line\&. Default is the value of
\fBsendemail\&.toCmd\fR
configuration value\&.
.RE
.PP
\-\-cc\-cmd=<command>
.RS 4
Specify a command to execute once per patch file which should generate patch file specific
\fBCc:\fR
entries\&. Output of this command must be single email address per line\&. Default is the value of
\fBsendemail\&.ccCmd\fR
configuration value\&.
.RE
.PP
\-\-header\-cmd=<command>
.RS 4
Specify a command that is executed once per outgoing message and output RFC 2822 style header lines to be inserted into them\&. When the
\fBsendemail\&.headerCmd\fR
configuration variable is set, its value is always used\&. When
\fB\-\-header\-cmd\fR
is provided at the command line, its value takes precedence over the
\fBsendemail\&.headerCmd\fR
configuration variable\&.
.RE
.PP
\-\-no\-header\-cmd
.RS 4
Disable any header command in use\&.
.RE
.PP
\-\-chain\-reply\-to, \-\-no\-chain\-reply\-to
.RS 4
If this is set, each email will be sent as a reply to the previous email sent\&. If disabled with
\fB\-\-no\-chain\-reply\-to\fR, 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
\fBsendemail\&.chainReplyTo\fR
configuration variable can be used to enable it\&.
.RE
.PP
\-\-identity=<identity>
.RS 4
A configuration identity\&. When given, causes values in the
\fBsendemail\&.\fR\fI<identity>\fR
subsection to take precedence over values in the
\fBsendemail\fR
section\&. The default identity is the value of
\fBsendemail\&.identity\fR\&.
.RE
.PP
\-\-signed\-off\-by\-cc, \-\-no\-signed\-off\-by\-cc
.RS 4
If this is set, add emails found in the
\fBSigned\-off\-by\fR
trailer or
\fBCc:\fR
lines to the cc list\&. Default is the value of
\fBsendemail\&.signedOffByCc\fR
configuration value; if that is unspecified, default to
\fB\-\-signed\-off\-by\-cc\fR\&.
.RE
.PP
\-\-cc\-cover, \-\-no\-cc\-cover
.RS 4
If this is set, emails found in
\fBCc:\fR
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
\fBsendemail\&.ccCover\fR
configuration value; if that is unspecified, default to
\fB\-\-no\-cc\-cover\fR\&.
.RE
.PP
\-\-to\-cover, \-\-no\-to\-cover
.RS 4
If this is set, emails found in
\fBTo:\fR
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
\fBsendemail\&.toCover\fR
configuration value; if that is unspecified, default to
\fB\-\-no\-to\-cover\fR\&.
.RE
.PP
\-\-suppress\-cc=<category>
.RS 4
Specify an additional category of recipients to suppress the auto\-cc of:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBauthor\fR
will avoid including the patch author\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBself\fR
will avoid including the sender\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBcc\fR
will avoid including anyone mentioned in Cc lines in the patch header except for self (use
\fBself\fR
for that)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBbodycc\fR
will avoid including anyone mentioned in Cc lines in the patch body (commit message) except for self (use
\fBself\fR
for that)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBsob\fR
will avoid including anyone mentioned in the Signed\-off\-by trailers except for self (use
\fBself\fR
for that)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBmisc\-by\fR
will avoid including anyone mentioned in Acked\-by, Reviewed\-by, Tested\-by and other "\-by" lines in the patch body, except Signed\-off\-by (use
\fBsob\fR
for that)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBcccmd\fR
will avoid running the \-\-cc\-cmd\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBbody\fR
is equivalent to
\fBsob\fR
+
\fBbodycc\fR
+
\fBmisc\-by\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBall\fR
will suppress all auto cc values\&.
.RE
.sp
Default is the value of
\fBsendemail\&.suppressCc\fR
configuration value; if that is unspecified, default to
\fBself\fR
if
\fB\-\-suppress\-from\fR
is specified, as well as
\fBbody\fR
if
\fB\-\-no\-signed\-off\-cc\fR
is specified\&.
.RE
.PP
\-\-suppress\-from, \-\-no\-suppress\-from
.RS 4
If this is set, do not add the
\fBFrom:\fR
address to the
\fBCc:\fR
list\&. Default is the value of
\fBsendemail\&.suppressFrom\fR
configuration value; if that is unspecified, default to
\fB\-\-no\-suppress\-from\fR\&.
.RE
.PP
\-\-thread, \-\-no\-thread
.RS 4
If this is set, the
\fBIn\-Reply\-To\fR
and
\fBReferences\fR
headers will be added to each email sent\&. Whether each mail refers to the previous email (\fBdeep\fR
threading per
\fBgit\fR
\fBformat\-patch\fR
wording) or to the first email (\fBshallow\fR
threading) is governed by
\fB\-\-\fR[\fBno\-\fR]\fBchain\-reply\-to\fR\&.
.sp
If disabled with
\fB\-\-no\-thread\fR, those headers will not be added (unless specified with
\fB\-\-in\-reply\-to\fR)\&. Default is the value of the
\fBsendemail\&.thread\fR
configuration value; if that is unspecified, default to
\fB\-\-thread\fR\&.
.sp
It is up to the user to ensure that no In\-Reply\-To header already exists when
\fBgit\fR
\fBsend\-email\fR
is asked to add it (especially note that
\fBgit\fR
\fBformat\-patch\fR
can be configured to do the threading itself)\&. Failure to do so may not produce the expected result in the recipient\(cqs MUA\&.
.RE
.PP
\-\-mailmap, \-\-no\-mailmap
.RS 4
Use the mailmap file (see
\fBgitmailmap\fR(5)) to map all addresses to their canonical real name and email address\&. Additional mailmap data specific to
\fBgit\fR
\fBsend\-email\fR
may be provided using the
\fBsendemail\&.mailmap\&.file\fR
or
\fBsendemail\&.mailmap\&.blob\fR
configuration values\&. Defaults to
\fBsendemail\&.mailmap\fR\&.
.RE
.SS "Administering"
.PP
\-\-confirm=<mode>
.RS 4
Confirm just before sending:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBalways\fR
will always confirm before sending\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBnever\fR
will never confirm before sending\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBcc\fR
will confirm before sending when send\-email has automatically added addresses from the patch to the Cc list\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBcompose\fR
will confirm before sending the first message when using \-\-compose\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBauto\fR
is equivalent to
\fBcc\fR
+
\fBcompose\fR\&.
.RE
.sp
Default is the value of
\fBsendemail\&.confirm\fR
configuration value; if that is unspecified, default to
\fBauto\fR
unless any of the suppress options have been specified, in which case default to
\fBcompose\fR\&.
.RE
.PP
\-\-dry\-run
.RS 4
Do everything except actually send the emails\&.
.RE
.PP
\-\-format\-patch, \-\-no\-format\-patch
.RS 4
When an argument may be understood either as a reference or as a file name, choose to understand it as a format\-patch argument (\fB\-\-format\-patch\fR) or as a file name (\fB\-\-no\-format\-patch\fR)\&. By default, when such a conflict occurs,
\fBgit\fR
\fBsend\-email\fR
will fail\&.
.RE
.PP
\-\-quiet
.RS 4
Make
\fBgit\fR
\fBsend\-email\fR
less verbose\&. One line per email should be all that is output\&.
.RE
.PP
\-\-validate, \-\-no\-validate
.RS 4
Perform sanity checks on patches\&. Currently, validation means the following:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Invoke the sendemail\-validate hook if present (see
\fBgithooks\fR(5))\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Warn of patches that contain lines longer than 998 characters unless a suitable transfer encoding (\fBauto\fR,
\fBbase64\fR, or
\fBquoted\-printable\fR) is used; this is due to SMTP limits as described by
\m[blue]\fBhttps://www\&.ietf\&.org/rfc/rfc5322\&.txt\fR\m[]\&.
.RE
.sp
Default is the value of
\fBsendemail\&.validate\fR; if this is not set, default to
\fB\-\-validate\fR\&.
.RE
.PP
\-\-force
.RS 4
Send emails even if safety checks would prevent it\&.
.RE
.SS "Information"
.PP
\-\-dump\-aliases
.RS 4
Instead of the normal operation, dump the shorthand alias names from the configured alias file(s), one per line in alphabetical order\&. Note that this only includes the alias name and not its expanded email addresses\&. See
\fBsendemail\&.aliasesFile\fR
for more information about aliases\&.
.RE
.PP
\-\-translate\-aliases
.RS 4
Instead of the normal operation, read from standard input and interpret each line as an email alias\&. Translate it according to the configured alias file(s)\&. Output each translated name and email address to standard output, one per line\&. See
\fBsendemail\&.aliasFile\fR
for more information about aliases\&.
.RE
.SH "CONFIGURATION"
.sp
Everything below this line in this section is selectively included from the \fBgit-config\fR(1) documentation\&. The content is the same as what\(cqs found there:
.PP
sendemail\&.identity
.RS 4
A configuration identity\&. When given, causes values in the
\fBsendemail\&.\fR\fI<identity>\fR
subsection to take precedence over values in the
\fBsendemail\fR
section\&. The default identity is the value of
\fBsendemail\&.identity\fR\&.
.RE
.PP
sendemail\&.smtpEncryption
.RS 4
See
\fBgit-send-email\fR(1)
for description\&. Note that this setting is not subject to the
\fBidentity\fR
mechanism\&.
.RE
.PP
sendemail\&.smtpSSLCertPath
.RS 4
Path to ca\-certificates (either a directory or a single file)\&. Set it to an empty string to disable certificate verification\&.
.RE
.PP
sendemail\&.<identity>\&.*
.RS 4
Identity\-specific versions of the
\fBsendemail\&.*\fR
parameters found below, taking precedence over those when this identity is selected, through either the command\-line or
\fBsendemail\&.identity\fR\&.
.RE
.PP
sendemail\&.multiEdit
.RS 4
If
\fBtrue\fR
(default), a single editor instance will be spawned to edit files you have to edit (patches when
\fB\-\-annotate\fR
is used, and the summary when
\fB\-\-compose\fR
is used)\&. If
\fBfalse\fR, files will be edited one after the other, spawning a new editor each time\&.
.RE
.PP
sendemail\&.confirm
.RS 4
Sets the default for whether to confirm before sending\&. Must be one of
\fBalways\fR,
\fBnever\fR,
\fBcc\fR,
\fBcompose\fR, or
\fBauto\fR\&. See
\fB\-\-confirm\fR
in the
\fBgit-send-email\fR(1)
documentation for the meaning of these values\&.
.RE
.PP
sendemail\&.mailmap
.RS 4
If
\fBtrue\fR, makes
\fBgit-send-email\fR(1)
assume
\fB\-\-mailmap\fR, otherwise assume
\fB\-\-no\-mailmap\fR\&.
\fBFalse\fR
by default\&.
.RE
.PP
sendemail\&.mailmap\&.file
.RS 4
The location of a
\fBgit-send-email\fR(1)
specific augmenting mailmap file\&. The default mailmap and
\fBmailmap\&.file\fR
are loaded first\&. Thus, entries in this file take precedence over entries in the default mailmap locations\&. See
\fBgitmailmap\fR(5)\&.
.RE
.PP
sendemail\&.mailmap\&.blob
.RS 4
Like
\fBsendemail\&.mailmap\&.file\fR, but consider the value as a reference to a blob in the repository\&. Entries in
\fBsendemail\&.mailmap\&.file\fR
take precedence over entries here\&. See
\fBgitmailmap\fR(5)\&.
.RE
.PP
sendemail\&.aliasesFile
.RS 4
To avoid typing long email addresses, point this to one or more email aliases files\&. You must also supply
\fBsendemail\&.aliasFileType\fR\&.
.RE
.PP
sendemail\&.aliasFileType
.RS 4
Format of the file(s) specified in sendemail\&.aliasesFile\&. Must be one of
\fBmutt\fR,
\fBmailrc\fR,
\fBpine\fR,
\fBelm\fR,
\fBgnus\fR, or
\fBsendmail\fR\&.
.sp
What an alias file in each format looks like can be found in the documentation of the email program of the same name\&. The differences and limitations from the standard formats are described below:
.PP
sendmail
.RS 4
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Quoted aliases and quoted addresses are not supported: lines that contain a " symbol are ignored\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Redirection to a file (\fB/path/name\fR) or pipe (|\fBcommand\fR) is not supported\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
File inclusion (\fB:include:\fR
\fB/path/name\fR) is not supported\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Warnings are printed on the standard error output for any explicitly unsupported constructs, and any other lines that are not recognized by the parser\&.
.RE
.RE
.RE
.PP
sendemail\&.annotate, sendemail\&.bcc, sendemail\&.cc, sendemail\&.ccCmd, sendemail\&.chainReplyTo, sendemail\&.envelopeSender, sendemail\&.from, sendemail\&.headerCmd, sendemail\&.signedOffByCc, sendemail\&.smtpPass, sendemail\&.suppressCc, sendemail\&.suppressFrom, sendemail\&.to, sendemail\&.toCmd, sendemail\&.smtpDomain, sendemail\&.smtpServer, sendemail\&.smtpServerPort, sendemail\&.smtpServerOption, sendemail\&.smtpUser, sendemail\&.imapSentFolder, sendemail\&.useImapOnly, sendemail\&.thread, sendemail\&.transferEncoding, sendemail\&.validate, sendemail\&.xmailer
.RS 4
These configuration variables all provide a default for
\fBgit-send-email\fR(1)
command\-line options\&. See its documentation for details\&.
.RE
.PP
sendemail\&.outlookidfix
.RS 4
If
\fBtrue\fR, makes
\fBgit-send-email\fR(1)
assume
\fB\-\-outlook\-id\-fix\fR, and if
\fBfalse\fR
assume
\fB\-\-no\-outlook\-id\-fix\fR\&. If not specified, it will behave the same way as if
\fB\-\-outlook\-id\-fix\fR
is not specified\&.
.RE
.PP
sendemail\&.signedOffCc (deprecated)
.RS 4
Deprecated alias for
\fBsendemail\&.signedOffByCc\fR\&.
.RE
.PP
sendemail\&.smtpBatchSize
.RS 4
Number of messages to be sent per connection, after that a relogin will happen\&. If the value is
\fB0\fR
or undefined, send all messages in one connection\&. See also the
\fB\-\-batch\-size\fR
option of
\fBgit-send-email\fR(1)\&.
.RE
.PP
sendemail\&.smtpReloginDelay
.RS 4
Seconds to wait before reconnecting to the smtp server\&. See also the
\fB\-\-relogin\-delay\fR
option of
\fBgit-send-email\fR(1)\&.
.RE
.PP
sendemail\&.forbidSendmailVariables
.RS 4
To avoid common misconfiguration mistakes,
\fBgit-send-email\fR(1)
will abort with a warning if any configuration options for
\fBsendmail\fR
exist\&. Set this variable to bypass the check\&.
.RE
.SH "EXAMPLES OF SMTP SERVERS"
.SS "Use Gmail as the SMTP Server"
.sp
To use \fBgit\fR \fBsend\-email\fR to send your patches through the Gmail SMTP server, edit \fB~/\&.gitconfig\fR to specify your account settings:
.sp
.if n \{\
.RS 4
.\}
.nf
[sendemail]
        smtpEncryption = ssl
        smtpServer = smtp\&.gmail\&.com
        smtpUser = yourname@gmail\&.com
        smtpServerPort = 465
.fi
.if n \{\
.RE
.\}
.sp
Gmail does not allow using your regular password for \fBgit\fR \fBsend\-email\fR\&. If you have multi\-factor authentication set up on your Gmail account, you can generate an app\-specific password for use with \fBgit\fR \fBsend\-email\fR\&. Visit \m[blue]\fBhttps://security\&.google\&.com/settings/security/apppasswords\fR\m[] to create it\&.
.sp
Alternatively, instead of using an app\-specific password, you can use OAuth2\&.0 authentication with Gmail\&. OAuth2\&.0 is more secure than app\-specific passwords, and works regardless of whether you have multi\-factor authentication set up\&. \fBOAUTHBEARER\fR and \fBXOAUTH2\fR are common mechanisms used for this type of authentication\&. Gmail supports both of them\&. As an example, if you want to use \fBOAUTHBEARER\fR, edit your \fB~/\&.gitconfig\fR file and add \fBsmtpAuth\fR \fB=\fR \fBOAUTHBEARER\fR to your account settings:
.sp
.if n \{\
.RS 4
.\}
.nf
[sendemail]
        smtpEncryption = ssl
        smtpServer = smtp\&.gmail\&.com
        smtpUser = yourname@gmail\&.com
        smtpServerPort = 465
        smtpAuth = OAUTHBEARER
.fi
.if n \{\
.RE
.\}
.sp
Another alternative is using a tool developed by Google known as \m[blue]\fBsendgmail\fR\m[]\&\s-2\u[1]\d\s+2 to send emails using \fBgit\fR \fBsend\-email\fR\&.
.SS "Use Microsoft Outlook as the SMTP Server"
.sp
Unlike Gmail, Microsoft Outlook no longer supports app\-specific passwords\&. Therefore, OAuth2\&.0 authentication must be used for Outlook\&. Also, it only supports \fBXOAUTH2\fR authentication mechanism\&.
.sp
Edit \fB~/\&.gitconfig\fR to specify your account settings for Outlook and use its SMTP server with \fBgit\fR \fBsend\-email\fR:
.sp
.if n \{\
.RS 4
.\}
.nf
[sendemail]
        smtpEncryption = tls
        smtpServer = smtp\&.office365\&.com
        smtpUser = yourname@outlook\&.com
        smtpServerPort = 587
        smtpAuth = XOAUTH2
.fi
.if n \{\
.RE
.\}
.SH "SENDING PATCHES"
.sp
Once your commits are ready to be sent to the mailing list, run the following commands:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git format\-patch \-\-cover\-letter \-M origin/master \-o outgoing/
$ edit outgoing/0000\-*
$ git send\-email outgoing/*
.fi
.if n \{\
.RE
.\}
.sp
The first time you run it, you will be prompted for your credentials\&. Enter the app\-specific or your regular password as appropriate\&.
.sp
If you have a credential helper configured (see \fBgit-credential\fR(1)), the password will be saved in the credential store so you won\(cqt have to type it the next time\&.
.sp
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 are also available:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBgit\-credential\-gmail\fR\m[]\&\s-2\u[2]\d\s+2
(cross platform, dedicated helper for authenticating Gmail accounts)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBgit\-credential\-outlook\fR\m[]\&\s-2\u[2]\d\s+2
(cross platform, dedicated helper for authenticating Microsoft Outlook accounts)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBgit\-credential\-yahoo\fR\m[]\&\s-2\u[2]\d\s+2
(cross platform, dedicated helper for authenticating Yahoo accounts)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBgit\-credential\-aol\fR\m[]\&\s-2\u[2]\d\s+2
(cross platform, dedicated helper for authenticating AOL accounts)
.RE
.sp
You can also see \fBgitcredentials\fR(7) for more OAuth based authentication helpers\&.
.sp
Proton Mail does not provide an SMTP server to send emails\&. If you are a paid customer of Proton Mail, you can use \m[blue]\fBProton Mail Bridge\fR\m[]\&\s-2\u[3]\d\s+2 officially provided by Proton Mail to create a local SMTP server for sending emails\&. For both free and paid users, community maintained projects like \m[blue]\fBgit\-protonmail\fR\m[]\&\s-2\u[2]\d\s+2 can be used\&.
.sp
Note: the following core Perl modules that may be installed with your distribution of Perl are required:
.sp
\m[blue]\fBMIME::Base64\fR\m[]\&\s-2\u[4]\d\s+2, \m[blue]\fBMIME::QuotedPrint\fR\m[]\&\s-2\u[5]\d\s+2, \m[blue]\fBNet::Domain\fR\m[]\&\s-2\u[6]\d\s+2 and \m[blue]\fBNet::SMTP\fR\m[]\&\s-2\u[7]\d\s+2\&.
.sp
These additional Perl modules are also required:
.sp
\m[blue]\fBAuthen::SASL\fR\m[]\&\s-2\u[8]\d\s+2 and \m[blue]\fBMail::Address\fR\m[]\&\s-2\u[9]\d\s+2\&.
.SS "Exploiting the \fBsendmailCmd\fR option of \fBgit\fR \fBsend\-email\fR"
.sp
Apart from sending emails via an SMTP server, \fBgit\fR \fBsend\-email\fR can also send emails through any application that supports sendmail\-like commands\&. You can read documentation of \fB\-\-sendmail\-cmd=\fR\fI<command>\fR above for more information\&. This ability can be very useful if you want to use another application as an SMTP client for \fBgit\fR \fBsend\-email\fR, or if your email provider uses proprietary APIs instead of SMTP to send emails\&.
.sp
As an example, lets see how to configure \m[blue]\fBmsmtp\fR\m[]\&\s-2\u[10]\d\s+2, a popular SMTP client found in many Linux distributions\&. Edit \fB~/\&.gitconfig\fR to instruct \fBgit\-send\-email\fR to use it for sending emails\&.
.sp
.if n \{\
.RS 4
.\}
.nf
[sendemail]
        sendmailCmd = /usr/bin/msmtp # Change this to the path where msmtp is installed
.fi
.if n \{\
.RE
.\}
.sp
Links of a few such community maintained helpers are:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBmsmtp\fR\m[]\&\s-2\u[10]\d\s+2
(popular SMTP client with many features, available for Linux and macOS)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBgit\-protonmail\fR\m[]\&\s-2\u[2]\d\s+2
(cross platform client that can send emails using the ProtonMail API)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\m[blue]\fBgit\-msgraph\fR\m[]\&\s-2\u[2]\d\s+2
(cross platform client that can send emails using the Microsoft Graph API)
.RE
.SH "SEE ALSO"
.sp
\fBgit-format-patch\fR(1), \fBgit-imap-send\fR(1), mbox(5)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
.SH "NOTES"
.IP " 1." 4
sendgmail
.RS 4
\%https://github.com/google/gmail-oauth2-tools/tree/master/go/sendgmail
.RE
.IP " 2." 4
git-credential-gmail
.RS 4
\%https://github.com/AdityaGarg8/git-credential-email
.RE
.IP " 3." 4
Proton Mail Bridge
.RS 4
\%https://proton.me/mail/bridge
.RE
.IP " 4." 4
MIME::Base64
.RS 4
\%https://metacpan.org/pod/MIME::Base64
.RE
.IP " 5." 4
MIME::QuotedPrint
.RS 4
\%https://metacpan.org/pod/MIME::QuotedPrint
.RE
.IP " 6." 4
Net::Domain
.RS 4
\%https://metacpan.org/pod/Net::Domain
.RE
.IP " 7." 4
Net::SMTP
.RS 4
\%https://metacpan.org/pod/Net::SMTP
.RE
.IP " 8." 4
Authen::SASL
.RS 4
\%https://metacpan.org/pod/Authen::SASL
.RE
.IP " 9." 4
Mail::Address
.RS 4
\%https://metacpan.org/pod/Mail::Address
.RE
.IP "10." 4
msmtp
.RS 4
\%https://marlam.de/msmtp/
.RE
