1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
3 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en">
6 <meta http-equiv=
"Content-Type" content=
"application/xhtml+xml; charset=UTF-8" />
7 <meta name=
"generator" content=
"AsciiDoc 10.2.0" />
8 <title>git-send-email(
1)
</title>
9 <style type=
"text/css">
10 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
14 font-family: Georgia,serif;
18 h1, h2, h3, h4, h5, h6,
19 div.title, caption.title,
20 thead, p.table.header,
22 #author, #revnumber, #revdate, #revremark,
24 font-family: Arial,Helvetica,sans-serif;
28 margin:
1em
5%
1em
5%;
33 text-decoration: underline;
49 h1, h2, h3, h4, h5, h6 {
57 border-bottom:
2px solid silver;
77 border:
1px solid silver;
88 ul
> li { color: #aaa; }
89 ul
> li
> * { color: black; }
91 .monospaced, code, pre {
92 font-family:
"Courier New", Courier, monospace;
99 white-space: pre-wrap;
109 #revnumber, #revdate, #revremark {
114 border-top:
2px solid silver;
120 padding-bottom:
0.5em;
124 padding-bottom:
0.5em;
129 margin-bottom:
1.5em;
131 div.imageblock, div.exampleblock, div.verseblock,
132 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
133 div.admonitionblock {
135 margin-bottom:
1.5em;
137 div.admonitionblock {
139 margin-bottom:
2.0em;
144 div.content { /* Block element content. */
148 /* Block element titles. */
149 div.title, caption.title {
154 margin-bottom:
0.5em;
160 td div.title:first-child {
163 div.content div.title:first-child {
166 div.content + div.title {
170 div.sidebarblock
> div.content {
172 border:
1px solid #dddddd;
173 border-left:
4px solid #f0f0f0;
177 div.listingblock
> div.content {
178 border:
1px solid #dddddd;
179 border-left:
5px solid #f0f0f0;
184 div.quoteblock, div.verseblock {
188 border-left:
5px solid #f0f0f0;
192 div.quoteblock
> div.attribution {
197 div.verseblock
> pre.content {
198 font-family: inherit;
201 div.verseblock
> div.attribution {
205 /* DEPRECATED: Pre version
8.2.7 verse style literal block. */
206 div.verseblock + div.attribution {
210 div.admonitionblock .icon {
214 text-decoration: underline;
216 padding-right:
0.5em;
218 div.admonitionblock td.content {
220 border-left:
3px solid #dddddd;
223 div.exampleblock
> div.content {
224 border-left:
3px solid #dddddd;
228 div.imageblock div.content { padding-left:
0; }
229 span.image img { border-style: none; vertical-align: text-bottom; }
230 a.image:visited { color: white; }
234 margin-bottom:
0.8em;
247 list-style-position: outside;
250 list-style-type: decimal;
253 list-style-type: lower-alpha;
256 list-style-type: upper-alpha;
259 list-style-type: lower-roman;
262 list-style-type: upper-roman;
265 div.compact ul, div.compact ol,
266 div.compact p, div.compact p,
267 div.compact div, div.compact div {
269 margin-bottom:
0.1em;
281 margin-bottom:
0.8em;
284 padding-bottom:
15px;
286 dt.hdlist1.strong, td.hdlist1.strong {
292 padding-right:
0.8em;
298 div.hdlist.compact tr {
307 .footnote, .footnoteref {
311 span.footnote, span.footnoteref {
312 vertical-align: super;
316 margin:
20px
0 20px
0;
320 #footnotes div.footnote {
326 border-top:
1px solid silver;
335 padding-right:
0.5em;
336 padding-bottom:
0.3em;
344 #footer-badges { display: none; }
348 margin-bottom:
2.5em;
356 margin-bottom:
0.1em;
359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
376 span.aqua { color: aqua; }
377 span.black { color: black; }
378 span.blue { color: blue; }
379 span.fuchsia { color: fuchsia; }
380 span.gray { color: gray; }
381 span.green { color: green; }
382 span.lime { color: lime; }
383 span.maroon { color: maroon; }
384 span.navy { color: navy; }
385 span.olive { color: olive; }
386 span.purple { color: purple; }
387 span.red { color: red; }
388 span.silver { color: silver; }
389 span.teal { color: teal; }
390 span.white { color: white; }
391 span.yellow { color: yellow; }
393 span.aqua-background { background: aqua; }
394 span.black-background { background: black; }
395 span.blue-background { background: blue; }
396 span.fuchsia-background { background: fuchsia; }
397 span.gray-background { background: gray; }
398 span.green-background { background: green; }
399 span.lime-background { background: lime; }
400 span.maroon-background { background: maroon; }
401 span.navy-background { background: navy; }
402 span.olive-background { background: olive; }
403 span.purple-background { background: purple; }
404 span.red-background { background: red; }
405 span.silver-background { background: silver; }
406 span.teal-background { background: teal; }
407 span.white-background { background: white; }
408 span.yellow-background { background: yellow; }
410 span.big { font-size:
2em; }
411 span.small { font-size:
0.6em; }
413 span.underline { text-decoration: underline; }
414 span.overline { text-decoration: overline; }
415 span.line-through { text-decoration: line-through; }
417 div.unbreakable { page-break-inside: avoid; }
427 margin-bottom:
1.5em;
429 div.tableblock
> table {
430 border:
3px solid #
527bbd;
432 thead, p.table.header {
439 /* Because the table frame attribute is overridden by CSS in most browsers. */
440 div.tableblock
> table[
frame=
"void"] {
443 div.tableblock
> table[
frame=
"hsides"] {
444 border-left-style: none;
445 border-right-style: none;
447 div.tableblock
> table[
frame=
"vsides"] {
448 border-top-style: none;
449 border-bottom-style: none;
460 margin-bottom:
1.5em;
462 thead, p.tableblock.header {
473 border-color: #
527bbd;
474 border-collapse: collapse;
476 th.tableblock, td.tableblock {
480 border-color: #
527bbd;
483 table.tableblock.frame-topbot {
484 border-left-style: hidden;
485 border-right-style: hidden;
487 table.tableblock.frame-sides {
488 border-top-style: hidden;
489 border-bottom-style: hidden;
491 table.tableblock.frame-none {
492 border-style: hidden;
495 th.tableblock.halign-left, td.tableblock.halign-left {
498 th.tableblock.halign-center, td.tableblock.halign-center {
501 th.tableblock.halign-right, td.tableblock.halign-right {
505 th.tableblock.valign-top, td.tableblock.valign-top {
508 th.tableblock.valign-middle, td.tableblock.valign-middle {
509 vertical-align: middle;
511 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
512 vertical-align: bottom;
523 padding-bottom:
0.5em;
524 border-top:
2px solid silver;
525 border-bottom:
2px solid silver;
530 body.manpage div.sectionbody {
535 body.manpage div#toc { display: none; }
540 <script type=
"text/javascript">
542 var asciidoc = { // Namespace.
544 /////////////////////////////////////////////////////////////////////
545 // Table Of Contents generator
546 /////////////////////////////////////////////////////////////////////
548 /* Author: Mihai Bazon, September
2002
549 * http://students.infoiasi.ro/~mishoo
551 * Table Of Content generator
554 * Feel free to use this script under the terms of the GNU General Public
555 * License, as long as you do not remove or alter this notice.
558 /* modified by Troy D. Hanson, September
2006. License: GPL */
559 /* modified by Stuart Rackham,
2006,
2009. License: GPL */
562 toc: function (toclevels) {
564 function getText(el) {
566 for (var i = el.firstChild; i != null; i = i.nextSibling) {
567 if (i.nodeType ==
3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
569 else if (i.firstChild != null)
575 function TocEntry(el, text, toclevel) {
578 this.toclevel = toclevel;
581 function tocEntries(el, toclevels) {
582 var result = new Array;
583 var re = new RegExp('[hH]([
1-'+(toclevels+
1)+'])');
584 // Function that scans the DOM tree for header elements (the DOM2
585 // nodeIterator API would be a better technique but not supported by all
587 var iterate = function (el) {
588 for (var i = el.firstChild; i != null; i = i.nextSibling) {
589 if (i.nodeType ==
1 /* Node.ELEMENT_NODE */) {
590 var mo = re.exec(i.tagName);
591 if (mo && (i.getAttribute(
"class") || i.getAttribute(
"className")) !=
"float") {
592 result[result.length] = new TocEntry(i, getText(i), mo[
1]-
1);
602 var toc = document.getElementById(
"toc");
607 // Delete existing TOC entries in case we're reloading the TOC.
608 var tocEntriesToRemove = [];
610 for (i =
0; i < toc.childNodes.length; i++) {
611 var entry = toc.childNodes[i];
612 if (entry.nodeName.toLowerCase() == 'div'
613 && entry.getAttribute(
"class")
614 && entry.getAttribute(
"class").match(/^toclevel/))
615 tocEntriesToRemove.push(entry);
617 for (i =
0; i < tocEntriesToRemove.length; i++) {
618 toc.removeChild(tocEntriesToRemove[i]);
621 // Rebuild TOC entries.
622 var entries = tocEntries(document.getElementById(
"content"), toclevels);
623 for (var i =
0; i < entries.length; ++i) {
624 var entry = entries[i];
625 if (entry.element.id ==
"")
626 entry.element.id =
"_toc_" + i;
627 var a = document.createElement(
"a");
628 a.href =
"#" + entry.element.id;
629 a.appendChild(document.createTextNode(entry.text));
630 var div = document.createElement(
"div");
632 div.className =
"toclevel" + entry.toclevel;
633 toc.appendChild(div);
635 if (entries.length ==
0)
636 toc.parentNode.removeChild(toc);
640 /////////////////////////////////////////////////////////////////////
641 // Footnotes generator
642 /////////////////////////////////////////////////////////////////////
644 /* Based on footnote generation code from:
645 * http://www.brandspankingnew.net/archive/
2005/
07/format_footnote.html
648 footnotes: function () {
649 // Delete existing footnote entries in case we're reloading the footnodes.
651 var noteholder = document.getElementById(
"footnotes");
655 var entriesToRemove = [];
656 for (i =
0; i < noteholder.childNodes.length; i++) {
657 var entry = noteholder.childNodes[i];
658 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute(
"class") ==
"footnote")
659 entriesToRemove.push(entry);
661 for (i =
0; i < entriesToRemove.length; i++) {
662 noteholder.removeChild(entriesToRemove[i]);
665 // Rebuild footnote entries.
666 var cont = document.getElementById(
"content");
667 var spans = cont.getElementsByTagName(
"span");
670 for (i=
0; i
<spans.length; i++) {
671 if (spans[i].className ==
"footnote") {
673 var note = spans[i].getAttribute(
"data-note");
675 // Use [\s\S] in place of . so multi-line matches work.
676 // Because JavaScript has no s (dotall) regex flag.
677 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[
1];
679 "[<a id='_footnoteref_" + n +
"' href='#_footnote_" + n +
680 "' title='View footnote' class='footnote'>" + n +
"</a>]";
681 spans[i].setAttribute(
"data-note", note);
683 noteholder.innerHTML +=
684 "<div class='footnote' id='_footnote_" + n +
"'>" +
685 "<a href='#_footnoteref_" + n +
"' title='Return to text'>" +
686 n +
"</a>. " + note +
"</div>";
687 var id =spans[i].getAttribute(
"id");
688 if (id != null) refs[
"#"+id] = n;
692 noteholder.parentNode.removeChild(noteholder);
694 // Process footnoterefs.
695 for (i=
0; i
<spans.length; i++) {
696 if (spans[i].className ==
"footnoteref") {
697 var href = spans[i].getElementsByTagName(
"a")[
0].getAttribute(
"href");
698 href = href.match(/#.*/)[
0]; // Because IE return full URL.
701 "[<a href='#_footnote_" + n +
702 "' title='View footnote' class='footnote'>" + n +
"</a>]";
708 install: function(toclevels) {
711 function reinstall() {
712 asciidoc.footnotes();
714 asciidoc.toc(toclevels);
718 function reinstallAndRemoveTimer() {
719 clearInterval(timerId);
723 timerId = setInterval(reinstall,
500);
724 if (document.addEventListener)
725 document.addEventListener(
"DOMContentLoaded", reinstallAndRemoveTimer, false);
727 window.onload = reinstallAndRemoveTimer;
735 <body class=
"manpage">
738 git-send-email(
1) Manual Page
741 <div class=
"sectionbody">
743 Send a collection of patches as emails
749 <h2 id=
"_synopsis">SYNOPSIS
</h2>
750 <div class=
"sectionbody">
751 <div class=
"verseblock">
752 <pre class=
"content"><em>git send-email
</em> [
<options
>]
<file|directory
>…
753 <em>git send-email
</em> [
<options
>]
<format-patch options
>
754 <em>git send-email
</em> --dump-aliases
</pre>
755 <div class=
"attribution">
760 <h2 id=
"_description">DESCRIPTION
</h2>
761 <div class=
"sectionbody">
762 <div class=
"paragraph"><p>Takes the patches given on the command line and emails them out.
763 Patches can be specified as files, directories (which will send all
764 files in the directory), or directly as a revision list. In the
765 last case, any format accepted by
<a href=
"git-format-patch.html">git-format-patch(
1)
</a> can
766 be passed to git send-email, as well as options understood by
767 <a href=
"git-format-patch.html">git-format-patch(
1)
</a>.
</p></div>
768 <div class=
"paragraph"><p>The header of the email is configurable via command-line options. If not
769 specified on the command line, the user will be prompted with a ReadLine
770 enabled interface to provide the necessary information.
</p></div>
771 <div class=
"paragraph"><p>There are two formats accepted for patch files:
</p></div>
772 <div class=
"olist arabic"><ol class=
"arabic">
777 <div class=
"paragraph"><p>This is what
<a href=
"git-format-patch.html">git-format-patch(
1)
</a> generates. Most headers and MIME
778 formatting are ignored.
</p></div>
782 The original format used by Greg Kroah-Hartman
’s
<em>send_lots_of_email.pl
</em>
785 <div class=
"paragraph"><p>This format expects the first line of the file to contain the
"Cc:" value
786 and the
"Subject:" of the message as the second line.
</p></div>
792 <h2 id=
"_options">OPTIONS
</h2>
793 <div class=
"sectionbody">
795 <h3 id=
"_composing">Composing
</h3>
796 <div class=
"dlist"><dl>
802 Review and edit each patch you
’re about to send. Default is the value
803 of
<code>sendemail.annotate
</code>. See the CONFIGURATION section for
804 <code>sendemail.multiEdit
</code>.
808 --bcc=
<address
>,
…
812 Specify a
"Bcc:" value for each email. Default is the value of
813 <code>sendemail.bcc
</code>.
815 <div class=
"paragraph"><p>This option may be specified multiple times.
</p></div>
818 --cc=
<address
>,
…
822 Specify a starting
"Cc:" value for each email.
823 Default is the value of
<code>sendemail.cc
</code>.
825 <div class=
"paragraph"><p>This option may be specified multiple times.
</p></div>
832 Invoke a text editor (see GIT_EDITOR in
<a href=
"git-var.html">git-var(
1)
</a>)
833 to edit an introductory message for the patch series.
835 <div class=
"paragraph"><p>When
<code>--compose
</code> is used, git send-email will use the From, Subject, and
836 In-Reply-To headers specified in the message. If the body of the message
837 (what you type after the headers and a blank line) only contains blank
838 (or Git: prefixed) lines, the summary won
’t be sent, but From, Subject,
839 and In-Reply-To headers will be used unless they are removed.
</p></div>
840 <div class=
"paragraph"><p>Missing From or In-Reply-To headers will be prompted for.
</p></div>
841 <div class=
"paragraph"><p>See the CONFIGURATION section for
<code>sendemail.multiEdit
</code>.
</p></div>
844 --from=
<address
>
848 Specify the sender of the emails. If not specified on the command line,
849 the value of the
<code>sendemail.from
</code> configuration option is used. If
850 neither the command-line option nor
<code>sendemail.from
</code> are set, then the
851 user will be prompted for the value. The default for the prompt will be
852 the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not
853 set, as returned by
"git var -l".
857 --reply-to=
<address
>
861 Specify the address where replies from recipients should go to.
862 Use this if replies to messages should go to another address than what
863 is specified with the --from parameter.
867 --in-reply-to=
<identifier
>
871 Make the first mail (or all the mails with
<code>--no-thread
</code>) appear as a
872 reply to the given Message-ID, which avoids breaking threads to
873 provide a new patch series.
874 The second and subsequent emails will be sent as replies according to
875 the
<code>--[no-]chain-reply-to
</code> setting.
877 <div class=
"paragraph"><p>So for example when
<code>--thread
</code> and
<code>--no-chain-reply-to
</code> are specified, the
878 second and subsequent patches will be replies to the first one like in the
879 illustration below where
<code>[PATCH v2
0/
3]
</code> is in reply to
<code>[PATCH
0/
2]
</code>:
</p></div>
880 <div class=
"literalblock">
881 <div class=
"content">
882 <pre><code>[PATCH
0/
2] Here is what I did...
883 [PATCH
1/
2] Clean up and tests
884 [PATCH
2/
2] Implementation
885 [PATCH v2
0/
3] Here is a reroll
886 [PATCH v2
1/
3] Clean up
887 [PATCH v2
2/
3] New tests
888 [PATCH v2
3/
3] Implementation
</code></pre>
890 <div class=
"paragraph"><p>Only necessary if --compose is also set. If --compose
891 is not set, this will be prompted for.
</p></div>
894 --subject=
<string
>
898 Specify the initial subject of the email thread.
899 Only necessary if --compose is also set. If --compose
900 is not set, this will be prompted for.
904 --to=
<address
>,
…
908 Specify the primary recipient of the emails generated. Generally, this
909 will be the upstream maintainer of the project involved. Default is the
910 value of the
<code>sendemail.to
</code> configuration value; if that is unspecified,
911 and --to-cmd is not specified, this will be prompted for.
913 <div class=
"paragraph"><p>This option may be specified multiple times.
</p></div>
916 --
8bit-encoding=
<encoding
>
920 When encountering a non-ASCII message or subject that does not
921 declare its encoding, add headers/quoting to indicate it is
922 encoded in
<encoding
>. Default is the value of the
923 <em>sendemail.assume8bitEncoding
</em>; if that is unspecified, this
924 will be prompted for if any non-ASCII files are encountered.
926 <div class=
"paragraph"><p>Note that no attempts whatsoever are made to validate the encoding.
</p></div>
929 --compose-encoding=
<encoding
>
933 Specify encoding of compose message. Default is the value of the
934 <em>sendemail.composeencoding
</em>; if that is unspecified, UTF-
8 is assumed.
938 --transfer-encoding=(
7bit|
8bit|quoted-printable|base64|auto)
942 Specify the transfer encoding to be used to send the message over SMTP.
943 7bit will fail upon encountering a non-ASCII message. quoted-printable
944 can be useful when the repository contains files that contain carriage
945 returns, but makes the raw patch email file (as saved from a MUA) much
946 harder to inspect manually. base64 is even more fool proof, but also
947 even more opaque. auto will use
8bit when possible, and quoted-printable
950 <div class=
"paragraph"><p>Default is the value of the
<code>sendemail.transferEncoding
</code> configuration
951 value; if that is unspecified, default to
<code>auto
</code>.
</p></div>
961 Add (or prevent adding) the
"X-Mailer:" header. By default,
962 the header is added, but it can be turned off by setting the
963 <code>sendemail.xmailer
</code> configuration variable to
<code>false
</code>.
969 <h3 id=
"_sending">Sending
</h3>
970 <div class=
"dlist"><dl>
972 --envelope-sender=
<address
>
976 Specify the envelope sender used to send the emails.
977 This is useful if your default address is not the address that is
978 subscribed to a list. In order to use the
<em>From
</em> address, set the
979 value to
"auto". If you use the sendmail binary, you must have
980 suitable privileges for the -f parameter. Default is the value of the
981 <code>sendemail.envelopeSender
</code> configuration variable; if that is
982 unspecified, choosing the envelope sender is left to your MTA.
986 --sendmail-cmd=
<command
>
990 Specify a command to run to send the email. The command should
991 be sendmail-like; specifically, it must support the
<code>-i
</code> option.
992 The command will be executed in the shell if necessary. Default
993 is the value of
<code>sendemail.sendmailcmd
</code>. If unspecified, and if
994 --smtp-server is also unspecified, git-send-email will search
995 for
<code>sendmail
</code> in
<code>/usr/sbin
</code>,
<code>/usr/lib
</code> and $PATH.
999 --smtp-encryption=
<encryption
>
1003 Specify in what way encrypting begins for the SMTP connection.
1004 Valid values are
<em>ssl
</em> and
<em>tls
</em>. Any other value reverts to plain
1005 (unencrypted) SMTP, which defaults to port
25.
1006 Despite the names, both values will use the same newer version of TLS,
1007 but for historic reasons have these names.
<em>ssl
</em> refers to
"implicit"
1008 encryption (sometimes called SMTPS), that uses port
465 by default.
1009 <em>tls
</em> refers to
"explicit" encryption (often known as STARTTLS),
1010 that uses port
25 by default. Other ports might be used by the SMTP
1011 server, which are not the default. Commonly found alternative port for
1012 <em>tls
</em> and unencrypted is
587. You need to check your provider
’s
1013 documentation or your server configuration to make sure
1014 for your own case. Default is the value of
<code>sendemail.smtpEncryption
</code>.
1017 <dt class=
"hdlist1">
1018 --smtp-domain=
<FQDN
>
1022 Specifies the Fully Qualified Domain Name (FQDN) used in the
1023 HELO/EHLO command to the SMTP server. Some servers require the
1024 FQDN to match your IP address. If not set, git send-email attempts
1025 to determine your FQDN automatically. Default is the value of
1026 <code>sendemail.smtpDomain
</code>.
1029 <dt class=
"hdlist1">
1030 --smtp-auth=
<mechanisms
>
1034 Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting
1035 forces using only the listed mechanisms. Example:
1037 <div class=
"listingblock">
1038 <div class=
"content">
1039 <pre><code>$ git send-email
--smtp-auth=
"PLAIN LOGIN GSSAPI" ...
</code></pre>
1041 <div class=
"paragraph"><p>If at least one of the specified mechanisms matches the ones advertised by the
1042 SMTP server and if it is supported by the utilized SASL library, the mechanism
1043 is used for authentication. If neither
<em>sendemail.smtpAuth
</em> nor
<code>--smtp-auth
</code>
1044 is specified, all mechanisms supported by the SASL library can be used. The
1045 special value
<em>none
</em> maybe specified to completely disable authentication
1046 independently of
<code>--smtp-user
</code></p></div>
1048 <dt class=
"hdlist1">
1049 --smtp-pass[=
<password
>]
1053 Password for SMTP-AUTH. The argument is optional: If no
1054 argument is specified, then the empty string is used as
1055 the password. Default is the value of
<code>sendemail.smtpPass
</code>,
1056 however
<code>--smtp-pass
</code> always overrides this value.
1058 <div class=
"paragraph"><p>Furthermore, passwords need not be specified in configuration files
1059 or on the command line. If a username has been specified (with
1060 <code>--smtp-user
</code> or a
<code>sendemail.smtpUser
</code>), but no password has been
1061 specified (with
<code>--smtp-pass
</code> or
<code>sendemail.smtpPass
</code>), then
1062 a password is obtained using
<em>git-credential
</em>.
</p></div>
1064 <dt class=
"hdlist1">
1069 Disable SMTP authentication. Short hand for
<code>--smtp-auth=none
</code>
1072 <dt class=
"hdlist1">
1073 --smtp-server=
<host
>
1077 If set, specifies the outgoing SMTP server to use (e.g.
1078 <code>smtp.example.com
</code> or a raw IP address). If unspecified, and if
1079 <code>--sendmail-cmd
</code> is also unspecified, the default is to search
1080 for
<code>sendmail
</code> in
<code>/usr/sbin
</code>,
<code>/usr/lib
</code> and $PATH if such a
1081 program is available, falling back to
<code>localhost
</code> otherwise.
1083 <div class=
"paragraph"><p>For backward compatibility, this option can also specify a full pathname
1084 of a sendmail-like program instead; the program must support the
<code>-i
</code>
1085 option. This method does not support passing arguments or using plain
1086 command names. For those use cases, consider using
<code>--sendmail-cmd
</code>
1089 <dt class=
"hdlist1">
1090 --smtp-server-port=
<port
>
1094 Specifies a port different from the default port (SMTP
1095 servers typically listen to smtp port
25, but may also listen to
1096 submission port
587, or the common SSL smtp port
465);
1097 symbolic port names (e.g.
"submission" instead of
587)
1098 are also accepted. The port can also be set with the
1099 <code>sendemail.smtpServerPort
</code> configuration variable.
1102 <dt class=
"hdlist1">
1103 --smtp-server-option=
<option
>
1107 If set, specifies the outgoing SMTP server option to use.
1108 Default value can be specified by the
<code>sendemail.smtpServerOption
</code>
1109 configuration option.
1111 <div class=
"paragraph"><p>The --smtp-server-option option must be repeated for each option you want
1112 to pass to the server. Likewise, different lines in the configuration files
1113 must be used for each option.
</p></div>
1115 <dt class=
"hdlist1">
1120 Legacy alias for
<em>--smtp-encryption ssl
</em>.
1123 <dt class=
"hdlist1">
1124 --smtp-ssl-cert-path
1128 Path to a store of trusted CA certificates for SMTP SSL/TLS
1129 certificate validation (either a directory that has been processed
1130 by
<em>c_rehash
</em>, or a single file containing one or more PEM format
1131 certificates concatenated together: see verify(
1) -CAfile and
1132 -CApath for more information on these). Set it to an empty string
1133 to disable certificate verification. Defaults to the value of the
1134 <code>sendemail.smtpsslcertpath
</code> configuration variable, if set, or the
1135 backing SSL library
’s compiled-in default otherwise (which should
1136 be the best choice on most platforms).
1139 <dt class=
"hdlist1">
1140 --smtp-user=
<user
>
1144 Username for SMTP-AUTH. Default is the value of
<code>sendemail.smtpUser
</code>;
1145 if a username is not specified (with
<code>--smtp-user
</code> or
<code>sendemail.smtpUser
</code>),
1146 then authentication is not attempted.
1149 <dt class=
"hdlist1">
1154 Enable (
1) or disable (
0) debug output. If enabled, SMTP
1155 commands and replies will be printed. Useful to debug TLS
1156 connection and authentication problems.
1159 <dt class=
"hdlist1">
1160 --batch-size=
<num
>
1164 Some email servers (e.g. smtp
.163.com) limit the number emails to be
1165 sent per session (connection) and this will lead to a failure when
1166 sending many messages. With this option, send-email will disconnect after
1167 sending $
<num
> messages and wait for a few seconds (see --relogin-delay)
1168 and reconnect, to work around such a limit. You may want to
1169 use some form of credential helper to avoid having to retype
1170 your password every time this happens. Defaults to the
1171 <code>sendemail.smtpBatchSize
</code> configuration variable.
1174 <dt class=
"hdlist1">
1175 --relogin-delay=
<int
>
1179 Waiting $
<int
> seconds before reconnecting to SMTP server. Used together
1180 with --batch-size option. Defaults to the
<code>sendemail.smtpReloginDelay
</code>
1181 configuration variable.
1187 <h3 id=
"_automating">Automating
</h3>
1188 <div class=
"dlist"><dl>
1189 <dt class=
"hdlist1">
1194 Clears any list of
"To:",
"Cc:",
"Bcc:" addresses previously
1198 <dt class=
"hdlist1">
1203 Clears the previously read value of
<code>sendemail.identity
</code> set
1207 <dt class=
"hdlist1">
1208 --to-cmd=
<command
>
1212 Specify a command to execute once per patch file which
1213 should generate patch file specific
"To:" entries.
1214 Output of this command must be single email address per line.
1215 Default is the value of
<em>sendemail.tocmd
</em> configuration value.
1218 <dt class=
"hdlist1">
1219 --cc-cmd=
<command
>
1223 Specify a command to execute once per patch file which
1224 should generate patch file specific
"Cc:" entries.
1225 Output of this command must be single email address per line.
1226 Default is the value of
<code>sendemail.ccCmd
</code> configuration value.
1229 <dt class=
"hdlist1">
1230 --header-cmd=
<command
>
1234 Specify a command that is executed once per outgoing message
1235 and output RFC
2822 style header lines to be inserted into
1236 them. When the
<code>sendemail.headerCmd
</code> configuration variable is
1237 set, its value is always used. When --header-cmd is provided
1238 at the command line, its value takes precedence over the
1239 <code>sendemail.headerCmd
</code> configuration variable.
1242 <dt class=
"hdlist1">
1247 Disable any header command in use.
1250 <dt class=
"hdlist1">
1251 --[no-]chain-reply-to
1255 If this is set, each email will be sent as a reply to the previous
1256 email sent. If disabled with
"--no-chain-reply-to", all emails after
1257 the first will be sent as replies to the first email sent. When using
1258 this, it is recommended that the first file given be an overview of the
1259 entire patch series. Disabled by default, but the
<code>sendemail.chainReplyTo
</code>
1260 configuration variable can be used to enable it.
1263 <dt class=
"hdlist1">
1264 --identity=
<identity
>
1268 A configuration identity. When given, causes values in the
1269 <em>sendemail.
<identity
></em> subsection to take precedence over
1270 values in the
<em>sendemail
</em> section. The default identity is
1271 the value of
<code>sendemail.identity
</code>.
1274 <dt class=
"hdlist1">
1275 --[no-]signed-off-by-cc
1279 If this is set, add emails found in the
<code>Signed-off-by
</code> trailer or Cc: lines to the
1280 cc list. Default is the value of
<code>sendemail.signedoffbycc
</code> configuration
1281 value; if that is unspecified, default to --signed-off-by-cc.
1284 <dt class=
"hdlist1">
1289 If this is set, emails found in Cc: headers in the first patch of
1290 the series (typically the cover letter) are added to the cc list
1291 for each email set. Default is the value of
<em>sendemail.cccover
</em>
1292 configuration value; if that is unspecified, default to --no-cc-cover.
1295 <dt class=
"hdlist1">
1300 If this is set, emails found in To: headers in the first patch of
1301 the series (typically the cover letter) are added to the to list
1302 for each email set. Default is the value of
<em>sendemail.tocover
</em>
1303 configuration value; if that is unspecified, default to --no-to-cover.
1306 <dt class=
"hdlist1">
1307 --suppress-cc=
<category
>
1311 Specify an additional category of recipients to suppress the
1314 <div class=
"openblock">
1315 <div class=
"content">
1316 <div class=
"ulist"><ul>
1319 <em>author
</em> will avoid including the patch author.
1324 <em>self
</em> will avoid including the sender.
1329 <em>cc
</em> will avoid including anyone mentioned in Cc lines in the patch header
1330 except for self (use
<em>self
</em> for that).
1335 <em>bodycc
</em> will avoid including anyone mentioned in Cc lines in the
1336 patch body (commit message) except for self (use
<em>self
</em> for that).
1341 <em>sob
</em> will avoid including anyone mentioned in the Signed-off-by trailers except
1342 for self (use
<em>self
</em> for that).
1347 <em>misc-by
</em> will avoid including anyone mentioned in Acked-by,
1348 Reviewed-by, Tested-by and other
"-by" lines in the patch body,
1349 except Signed-off-by (use
<em>sob
</em> for that).
1354 <em>cccmd
</em> will avoid running the --cc-cmd.
1359 <em>body
</em> is equivalent to
<em>sob
</em> +
<em>bodycc
</em> +
<em>misc-by
</em>.
1364 <em>all
</em> will suppress all auto cc values.
1369 <div class=
"paragraph"><p>Default is the value of
<code>sendemail.suppresscc
</code> configuration value; if
1370 that is unspecified, default to
<em>self
</em> if --suppress-from is
1371 specified, as well as
<em>body
</em> if --no-signed-off-cc is specified.
</p></div>
1373 <dt class=
"hdlist1">
1374 --[no-]suppress-from
1378 If this is set, do not add the From: address to the cc: list.
1379 Default is the value of
<code>sendemail.suppressFrom
</code> configuration
1380 value; if that is unspecified, default to --no-suppress-from.
1383 <dt class=
"hdlist1">
1388 If this is set, the In-Reply-To and References headers will be
1389 added to each email sent. Whether each mail refers to the
1390 previous email (
<code>deep
</code> threading per
<em>git format-patch
</em>
1391 wording) or to the first email (
<code>shallow
</code> threading) is
1392 governed by
"--[no-]chain-reply-to".
1394 <div class=
"paragraph"><p>If disabled with
"--no-thread", those headers will not be added
1395 (unless specified with --in-reply-to). Default is the value of the
1396 <code>sendemail.thread
</code> configuration value; if that is unspecified,
1397 default to --thread.
</p></div>
1398 <div class=
"paragraph"><p>It is up to the user to ensure that no In-Reply-To header already
1399 exists when
<em>git send-email
</em> is asked to add it (especially note that
1400 <em>git format-patch
</em> can be configured to do the threading itself).
1401 Failure to do so may not produce the expected result in the
1402 recipient
’s MUA.
</p></div>
1407 <h3 id=
"_administering">Administering
</h3>
1408 <div class=
"dlist"><dl>
1409 <dt class=
"hdlist1">
1410 --confirm=
<mode
>
1414 Confirm just before sending:
1416 <div class=
"openblock">
1417 <div class=
"content">
1418 <div class=
"ulist"><ul>
1421 <em>always
</em> will always confirm before sending
1426 <em>never
</em> will never confirm before sending
1431 <em>cc
</em> will confirm before sending when send-email has automatically
1432 added addresses from the patch to the Cc list
1437 <em>compose
</em> will confirm before sending the first message when using --compose.
1442 <em>auto
</em> is equivalent to
<em>cc
</em> +
<em>compose
</em>
1447 <div class=
"paragraph"><p>Default is the value of
<code>sendemail.confirm
</code> configuration value; if that
1448 is unspecified, default to
<em>auto
</em> unless any of the suppress options
1449 have been specified, in which case default to
<em>compose
</em>.
</p></div>
1451 <dt class=
"hdlist1">
1456 Do everything except actually send the emails.
1459 <dt class=
"hdlist1">
1464 When an argument may be understood either as a reference or as a file name,
1465 choose to understand it as a format-patch argument (
<code>--format-patch
</code>)
1466 or as a file name (
<code>--no-format-patch
</code>). By default, when such a conflict
1467 occurs, git send-email will fail.
1470 <dt class=
"hdlist1">
1475 Make git-send-email less verbose. One line per email should be
1479 <dt class=
"hdlist1">
1484 Perform sanity checks on patches.
1485 Currently, validation means the following:
1487 <div class=
"openblock">
1488 <div class=
"content">
1489 <div class=
"ulist"><ul>
1492 Invoke the sendemail-validate hook if present (see
<a href=
"githooks.html">githooks(
5)
</a>).
1497 Warn of patches that contain lines longer than
1498 998 characters unless a suitable transfer encoding
1499 (
<em>auto
</em>,
<em>base64
</em>, or
<em>quoted-printable
</em>) is used;
1500 this is due to SMTP limits as described by
1501 <a href=
"http://www.ietf.org/rfc/rfc5322.txt">http://www.ietf.org/rfc/rfc5322.txt
</a>.
1506 <div class=
"paragraph"><p>Default is the value of
<code>sendemail.validate
</code>; if this is not set,
1507 default to
<code>--validate
</code>.
</p></div>
1509 <dt class=
"hdlist1">
1514 Send emails even if safety checks would prevent it.
1520 <h3 id=
"_information">Information
</h3>
1521 <div class=
"dlist"><dl>
1522 <dt class=
"hdlist1">
1527 Instead of the normal operation, dump the shorthand alias names from
1528 the configured alias file(s), one per line in alphabetical order. Note,
1529 this only includes the alias name and not its expanded email addresses.
1530 See
<em>sendemail.aliasesfile
</em> for more information about aliases.
1538 <h2 id=
"_configuration">CONFIGURATION
</h2>
1539 <div class=
"sectionbody">
1540 <div class=
"paragraph"><p>Everything below this line in this section is selectively included
1541 from the
<a href=
"git-config.html">git-config(
1)
</a> documentation. The content is the same
1542 as what
’s found there:
</p></div>
1543 <div class=
"dlist"><dl>
1544 <dt class=
"hdlist1">
1549 A configuration identity. When given, causes values in the
1550 <em>sendemail.
<identity
></em> subsection to take precedence over
1551 values in the
<em>sendemail
</em> section. The default identity is
1552 the value of
<code>sendemail.identity
</code>.
1555 <dt class=
"hdlist1">
1556 sendemail.smtpEncryption
1560 See
<a href=
"git-send-email.html">git-send-email(
1)
</a> for description. Note that this
1561 setting is not subject to the
<em>identity
</em> mechanism.
1564 <dt class=
"hdlist1">
1565 sendemail.smtpsslcertpath
1569 Path to ca-certificates (either a directory or a single file).
1570 Set it to an empty string to disable certificate verification.
1573 <dt class=
"hdlist1">
1574 sendemail.
<identity
>.*
1578 Identity-specific versions of the
<em>sendemail.*
</em> parameters
1579 found below, taking precedence over those when this
1580 identity is selected, through either the command-line or
1581 <code>sendemail.identity
</code>.
1584 <dt class=
"hdlist1">
1589 If true (default), a single editor instance will be spawned to edit
1590 files you have to edit (patches when
<code>--annotate
</code> is used, and the
1591 summary when
<code>--compose
</code> is used). If false, files will be edited one
1592 after the other, spawning a new editor each time.
1595 <dt class=
"hdlist1">
1600 Sets the default for whether to confirm before sending. Must be
1601 one of
<em>always
</em>,
<em>never
</em>,
<em>cc
</em>,
<em>compose
</em>, or
<em>auto
</em>. See
<code>--confirm
</code>
1602 in the
<a href=
"git-send-email.html">git-send-email(
1)
</a> documentation for the meaning of these
1606 <dt class=
"hdlist1">
1607 sendemail.aliasesFile
1611 To avoid typing long email addresses, point this to one or more
1612 email aliases files. You must also supply
<code>sendemail.aliasFileType
</code>.
1615 <dt class=
"hdlist1">
1616 sendemail.aliasFileType
1620 Format of the file(s) specified in sendemail.aliasesFile. Must be
1621 one of
<em>mutt
</em>,
<em>mailrc
</em>,
<em>pine
</em>,
<em>elm
</em>, or
<em>gnus
</em>, or
<em>sendmail
</em>.
1623 <div class=
"paragraph"><p>What an alias file in each format looks like can be found in
1624 the documentation of the email program of the same name. The
1625 differences and limitations from the standard formats are
1626 described below:
</p></div>
1627 <div class=
"openblock">
1628 <div class=
"content">
1629 <div class=
"dlist"><dl>
1630 <dt class=
"hdlist1">
1634 <div class=
"ulist"><ul>
1637 Quoted aliases and quoted addresses are not supported: lines that
1638 contain a
<code>"</code> symbol are ignored.
1643 Redirection to a file (<code>/path/name</code>) or pipe (<code>|command</code>) is not
1649 File inclusion (<code>:include: /path/name</code>) is not supported.
1654 Warnings are printed on the standard error output for any
1655 explicitly unsupported constructs, and any other lines that are not
1656 recognized by the parser.
1664 <dt class="hdlist1
">
1667 <dt class="hdlist1
">
1670 <dt class="hdlist1
">
1673 <dt class="hdlist1
">
1676 <dt class="hdlist1
">
1677 sendemail.chainReplyTo
1679 <dt class="hdlist1
">
1680 sendemail.envelopeSender
1682 <dt class="hdlist1
">
1685 <dt class="hdlist1
">
1688 <dt class="hdlist1
">
1689 sendemail.signedoffbycc
1691 <dt class="hdlist1
">
1694 <dt class="hdlist1
">
1695 sendemail.suppresscc
1697 <dt class="hdlist1
">
1698 sendemail.suppressFrom
1700 <dt class="hdlist1
">
1703 <dt class="hdlist1
">
1706 <dt class="hdlist1
">
1707 sendemail.smtpDomain
1709 <dt class="hdlist1
">
1710 sendemail.smtpServer
1712 <dt class="hdlist1
">
1713 sendemail.smtpServerPort
1715 <dt class="hdlist1
">
1716 sendemail.smtpServerOption
1718 <dt class="hdlist1
">
1721 <dt class="hdlist1
">
1724 <dt class="hdlist1
">
1725 sendemail.transferEncoding
1727 <dt class="hdlist1
">
1730 <dt class="hdlist1
">
1735 These configuration variables all provide a default for
1736 <a href="git-send-email.html
">git-send-email(1)</a> command-line options. See its
1737 documentation for details.
1740 <dt class="hdlist1
">
1741 sendemail.signedoffcc (deprecated)
1745 Deprecated alias for <code>sendemail.signedoffbycc</code>.
1748 <dt class="hdlist1
">
1749 sendemail.smtpBatchSize
1753 Number of messages to be sent per connection, after that a relogin
1754 will happen. If the value is 0 or undefined, send all messages in
1756 See also the <code>--batch-size</code> option of <a href="git-send-email.html
">git-send-email(1)</a>.
1759 <dt class="hdlist1
">
1760 sendemail.smtpReloginDelay
1764 Seconds wait before reconnecting to smtp server.
1765 See also the <code>--relogin-delay</code> option of <a href="git-send-email.html
">git-send-email(1)</a>.
1768 <dt class="hdlist1
">
1769 sendemail.forbidSendmailVariables
1773 To avoid common misconfiguration mistakes, <a href="git-send-email.html
">git-send-email(1)</a>
1774 will abort with a warning if any configuration options for "sendmail
"
1775 exist. Set this variable to bypass the check.
1782 <h2 id="_examples
">EXAMPLES</h2>
1783 <div class="sectionbody
">
1785 <h3 id="_use_gmail_as_the_smtp_server
">Use gmail as the smtp server</h3>
1786 <div class="paragraph
"><p>To use <em>git send-email</em> to send your patches through the GMail SMTP server,
1787 edit ~/.gitconfig to specify your account settings:</p></div>
1788 <div class="listingblock
">
1789 <div class="content
">
1790 <pre><code>[sendemail]
1791 smtpEncryption = tls
1792 smtpServer = smtp.gmail.com
1793 smtpUser = yourname@gmail.com
1794 smtpServerPort = 587</code></pre>
1796 <div class="paragraph
"><p>If you have multi-factor authentication set up on your Gmail account, you can
1797 generate an app-specific password for use with <em>git send-email</em>. Visit
1798 <a href="https://security.google.com/settings/security/apppasswords
">https://security.google.com/settings/security/apppasswords</a> to create it.</p></div>
1799 <div class="paragraph
"><p>Once your commits are ready to be sent to the mailing list, run the
1800 following commands:</p></div>
1801 <div class="literalblock
">
1802 <div class="content
">
1803 <pre><code>$ git format-patch --cover-letter -M origin/master -o outgoing/
1804 $ edit outgoing/0000-*
1805 $ git send-email outgoing/*</code></pre>
1807 <div class="paragraph
"><p>The first time you run it, you will be prompted for your credentials. Enter the
1808 app-specific or your regular password as appropriate. If you have credential
1809 helper configured (see <a href="git-credential.html
">git-credential(1)</a>), the password will be saved in
1810 the credential store so you won’t have to type it the next time.</p></div>
1811 <div class="paragraph
"><p>Note: the following core Perl modules that may be installed with your
1812 distribution of Perl are required:
1813 MIME::Base64, MIME::QuotedPrint, Net::Domain and Net::SMTP.
1814 These additional Perl modules are also required:
1815 Authen::SASL and Mail::Address.</p></div>
1820 <h2 id="_see_also
">SEE ALSO</h2>
1821 <div class="sectionbody
">
1822 <div class="paragraph
"><p><a href="git-format-patch.html
">git-format-patch(1)</a>, <a href="git-imap-send.html
">git-imap-send(1)</a>, mbox(5)</p></div>
1826 <h2 id="_git
">GIT</h2>
1827 <div class="sectionbody
">
1828 <div class="paragraph
"><p>Part of the <a href="git.html
">git(1)</a> suite</p></div>
1832 <div id="footnotes
"><hr /></div>
1834 <div id="footer-text
">
1836 2023-05-15 16:02:03 PDT