Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-send-email(1) |
| 2 | ================= |
| 3 | |
| 4 | NAME |
| 5 | ---- |
| 6 | git-send-email - Send a collection of patches as emails |
| 7 | |
| 8 | |
| 9 | SYNOPSIS |
| 10 | -------- |
Junio C Hamano | 15567bc | 2011-07-23 00:51:59 | [diff] [blame] | 11 | [verse] |
Junio C Hamano | c9cb517 | 2018-06-01 07:13:44 | [diff] [blame] | 12 | 'git send-email' [<options>] <file|directory|rev-list options>... |
Junio C Hamano | abb8a05 | 2015-12-04 22:43:11 | [diff] [blame] | 13 | 'git send-email' --dump-aliases |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 14 | |
| 15 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 16 | DESCRIPTION |
| 17 | ----------- |
| 18 | Takes the patches given on the command line and emails them out. |
Junio C Hamano | b95b43d | 2009-06-12 08:57:28 | [diff] [blame] | 19 | Patches can be specified as files, directories (which will send all |
| 20 | files in the directory), or directly as a revision list. In the |
| 21 | last case, any format accepted by linkgit:git-format-patch[1] can |
| 22 | be passed to git send-email. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 23 | |
Junio C Hamano | e1aeb5e | 2014-06-06 19:16:29 | [diff] [blame] | 24 | The header of the email is configurable via command-line options. If not |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 25 | specified on the command line, the user will be prompted with a ReadLine |
| 26 | enabled interface to provide the necessary information. |
| 27 | |
Junio C Hamano | a6455f6 | 2009-02-20 08:33:08 | [diff] [blame] | 28 | There are two formats accepted for patch files: |
| 29 | |
| 30 | 1. mbox format files |
| 31 | + |
| 32 | This is what linkgit:git-format-patch[1] generates. Most headers and MIME |
| 33 | formatting are ignored. |
| 34 | |
| 35 | 2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl' |
| 36 | script |
| 37 | + |
| 38 | This format expects the first line of the file to contain the "Cc:" value |
| 39 | and the "Subject:" of the message as the second line. |
| 40 | |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 41 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 42 | OPTIONS |
| 43 | ------- |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 44 | |
| 45 | Composing |
| 46 | ~~~~~~~~~ |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 47 | |
Junio C Hamano | 3d14151 | 2009-06-01 01:22:40 | [diff] [blame] | 48 | --annotate:: |
Junio C Hamano | ea3b752 | 2013-04-18 19:37:53 | [diff] [blame] | 49 | Review and edit each patch you're about to send. Default is the value |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 50 | of `sendemail.annotate`. See the CONFIGURATION section for |
| 51 | `sendemail.multiEdit`. |
Junio C Hamano | 3d14151 | 2009-06-01 01:22:40 | [diff] [blame] | 52 | |
Junio C Hamano | d7ed404 | 2015-08-03 19:43:00 | [diff] [blame] | 53 | --bcc=<address>,...:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 54 | Specify a "Bcc:" value for each email. Default is the value of |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 55 | `sendemail.bcc`. |
Junio C Hamano | a3fd83c | 2007-03-02 10:34:36 | [diff] [blame] | 56 | + |
Junio C Hamano | d7ed404 | 2015-08-03 19:43:00 | [diff] [blame] | 57 | This option may be specified multiple times. |
Junio C Hamano | 97f518c | 2006-06-22 19:49:35 | [diff] [blame] | 58 | |
Junio C Hamano | d7ed404 | 2015-08-03 19:43:00 | [diff] [blame] | 59 | --cc=<address>,...:: |
Junio C Hamano | c915412 | 2006-02-15 02:22:06 | [diff] [blame] | 60 | Specify a starting "Cc:" value for each email. |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 61 | Default is the value of `sendemail.cc`. |
Junio C Hamano | a3fd83c | 2007-03-02 10:34:36 | [diff] [blame] | 62 | + |
Junio C Hamano | d7ed404 | 2015-08-03 19:43:00 | [diff] [blame] | 63 | This option may be specified multiple times. |
Junio C Hamano | 97f518c | 2006-06-22 19:49:35 | [diff] [blame] | 64 | |
Junio C Hamano | 86f7588 | 2006-02-06 02:27:23 | [diff] [blame] | 65 | --compose:: |
Junio C Hamano | 3b70d3c | 2009-11-21 17:37:37 | [diff] [blame] | 66 | Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1]) |
| 67 | to edit an introductory message for the patch series. |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 68 | + |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 69 | When `--compose` is used, git send-email will use the From, Subject, and |
Junio C Hamano | ea82cff | 2009-03-18 01:54:48 | [diff] [blame] | 70 | In-Reply-To headers specified in the message. If the body of the message |
| 71 | (what you type after the headers and a blank line) only contains blank |
Junio C Hamano | e1aeb5e | 2014-06-06 19:16:29 | [diff] [blame] | 72 | (or Git: prefixed) lines, the summary won't be sent, but From, Subject, |
Junio C Hamano | ea82cff | 2009-03-18 01:54:48 | [diff] [blame] | 73 | and In-Reply-To headers will be used unless they are removed. |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 74 | + |
Junio C Hamano | ea82cff | 2009-03-18 01:54:48 | [diff] [blame] | 75 | Missing From or In-Reply-To headers will be prompted for. |
Junio C Hamano | 3d14151 | 2009-06-01 01:22:40 | [diff] [blame] | 76 | + |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 77 | See the CONFIGURATION section for `sendemail.multiEdit`. |
Junio C Hamano | 86f7588 | 2006-02-06 02:27:23 | [diff] [blame] | 78 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 79 | --from=<address>:: |
Junio C Hamano | 7ae1825 | 2009-05-23 09:53:32 | [diff] [blame] | 80 | Specify the sender of the emails. If not specified on the command line, |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 81 | the value of the `sendemail.from` configuration option is used. If |
| 82 | neither the command-line option nor `sendemail.from` are set, then the |
Junio C Hamano | 7ae1825 | 2009-05-23 09:53:32 | [diff] [blame] | 83 | user will be prompted for the value. The default for the prompt will be |
| 84 | the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not |
| 85 | set, as returned by "git var -l". |
Junio C Hamano | 86f7588 | 2006-02-06 02:27:23 | [diff] [blame] | 86 | |
Junio C Hamano | 8b40d4b | 2018-03-15 22:52:33 | [diff] [blame] | 87 | --reply-to=<address>:: |
| 88 | Specify the address where replies from recipients should go to. |
| 89 | Use this if replies to messages should go to another address than what |
| 90 | is specified with the --from parameter. |
| 91 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 92 | --in-reply-to=<identifier>:: |
Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 93 | Make the first mail (or all the mails with `--no-thread`) appear as a |
| 94 | reply to the given Message-Id, which avoids breaking threads to |
| 95 | provide a new patch series. |
| 96 | The second and subsequent emails will be sent as replies according to |
Junio C Hamano | cb06ef9 | 2017-03-21 22:40:14 | [diff] [blame] | 97 | the `--[no-]chain-reply-to` setting. |
Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 98 | + |
| 99 | So for example when `--thread` and `--no-chain-reply-to` are specified, the |
| 100 | second and subsequent patches will be replies to the first one like in the |
| 101 | illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`: |
| 102 | + |
| 103 | [PATCH 0/2] Here is what I did... |
| 104 | [PATCH 1/2] Clean up and tests |
| 105 | [PATCH 2/2] Implementation |
| 106 | [PATCH v2 0/3] Here is a reroll |
| 107 | [PATCH v2 1/3] Clean up |
| 108 | [PATCH v2 2/3] New tests |
| 109 | [PATCH v2 3/3] Implementation |
| 110 | + |
| 111 | Only necessary if --compose is also set. If --compose |
| 112 | is not set, this will be prompted for. |
Junio C Hamano | 86f7588 | 2006-02-06 02:27:23 | [diff] [blame] | 113 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 114 | --subject=<string>:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 115 | Specify the initial subject of the email thread. |
| 116 | Only necessary if --compose is also set. If --compose |
| 117 | is not set, this will be prompted for. |
Junio C Hamano | c915412 | 2006-02-15 02:22:06 | [diff] [blame] | 118 | |
Junio C Hamano | d7ed404 | 2015-08-03 19:43:00 | [diff] [blame] | 119 | --to=<address>,...:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 120 | Specify the primary recipient of the emails generated. Generally, this |
| 121 | will be the upstream maintainer of the project involved. Default is the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 122 | value of the `sendemail.to` configuration value; if that is unspecified, |
Junio C Hamano | 39c7a69 | 2010-10-27 06:08:54 | [diff] [blame] | 123 | and --to-cmd is not specified, this will be prompted for. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 124 | + |
Junio C Hamano | d7ed404 | 2015-08-03 19:43:00 | [diff] [blame] | 125 | This option may be specified multiple times. |
Junio C Hamano | 86f7588 | 2006-02-06 02:27:23 | [diff] [blame] | 126 | |
Junio C Hamano | 4015aed | 2010-06-27 20:07:42 | [diff] [blame] | 127 | --8bit-encoding=<encoding>:: |
| 128 | When encountering a non-ASCII message or subject that does not |
| 129 | declare its encoding, add headers/quoting to indicate it is |
| 130 | encoded in <encoding>. Default is the value of the |
| 131 | 'sendemail.assume8bitEncoding'; if that is unspecified, this |
| 132 | will be prompted for if any non-ASCII files are encountered. |
| 133 | + |
| 134 | Note that no attempts whatsoever are made to validate the encoding. |
| 135 | |
Junio C Hamano | a129545 | 2012-11-13 22:32:04 | [diff] [blame] | 136 | --compose-encoding=<encoding>:: |
| 137 | Specify encoding of compose message. Default is the value of the |
| 138 | 'sendemail.composeencoding'; if that is unspecified, UTF-8 is assumed. |
| 139 | |
Junio C Hamano | 1ff0338 | 2018-07-25 22:10:48 | [diff] [blame] | 140 | --transfer-encoding=(7bit|8bit|quoted-printable|base64|auto):: |
Junio C Hamano | 6df93d9 | 2014-12-22 22:48:09 | [diff] [blame] | 141 | Specify the transfer encoding to be used to send the message over SMTP. |
| 142 | 7bit will fail upon encountering a non-ASCII message. quoted-printable |
| 143 | can be useful when the repository contains files that contain carriage |
| 144 | returns, but makes the raw patch email file (as saved from a MUA) much |
| 145 | harder to inspect manually. base64 is even more fool proof, but also |
Junio C Hamano | 1ff0338 | 2018-07-25 22:10:48 | [diff] [blame] | 146 | even more opaque. auto will use 8bit when possible, and quoted-printable |
| 147 | otherwise. |
| 148 | + |
| 149 | Default is the value of the `sendemail.transferEncoding` configuration |
| 150 | value; if that is unspecified, default to `auto`. |
Junio C Hamano | 6df93d9 | 2014-12-22 22:48:09 | [diff] [blame] | 151 | |
Junio C Hamano | c9394b2 | 2015-01-07 22:45:48 | [diff] [blame] | 152 | --xmailer:: |
| 153 | --no-xmailer:: |
| 154 | Add (or prevent adding) the "X-Mailer:" header. By default, |
| 155 | the header is added, but it can be turned off by setting the |
| 156 | `sendemail.xmailer` configuration variable to `false`. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 157 | |
| 158 | Sending |
| 159 | ~~~~~~~ |
| 160 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 161 | --envelope-sender=<address>:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 162 | Specify the envelope sender used to send the emails. |
| 163 | This is useful if your default address is not the address that is |
Junio C Hamano | 2bd8a74 | 2009-12-01 21:16:59 | [diff] [blame] | 164 | subscribed to a list. In order to use the 'From' address, set the |
| 165 | value to "auto". If you use the sendmail binary, you must have |
| 166 | suitable privileges for the -f parameter. Default is the value of the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 167 | `sendemail.envelopeSender` configuration variable; if that is |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 168 | unspecified, choosing the envelope sender is left to your MTA. |
| 169 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 170 | --smtp-encryption=<encryption>:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 171 | Specify the encryption to use, either 'ssl' or 'tls'. Any other |
| 172 | value reverts to plain SMTP. Default is the value of |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 173 | `sendemail.smtpEncryption`. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 174 | |
Junio C Hamano | cb39aea | 2010-05-09 07:24:48 | [diff] [blame] | 175 | --smtp-domain=<FQDN>:: |
| 176 | Specifies the Fully Qualified Domain Name (FQDN) used in the |
| 177 | HELO/EHLO command to the SMTP server. Some servers require the |
| 178 | FQDN to match your IP address. If not set, git send-email attempts |
| 179 | to determine your FQDN automatically. Default is the value of |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 180 | `sendemail.smtpDomain`. |
Junio C Hamano | cb39aea | 2010-05-09 07:24:48 | [diff] [blame] | 181 | |
Junio C Hamano | a1746be | 2015-08-26 23:07:07 | [diff] [blame] | 182 | --smtp-auth=<mechanisms>:: |
| 183 | Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting |
| 184 | forces using only the listed mechanisms. Example: |
| 185 | + |
| 186 | ------ |
| 187 | $ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ... |
| 188 | ------ |
| 189 | + |
| 190 | If at least one of the specified mechanisms matches the ones advertised by the |
| 191 | SMTP server and if it is supported by the utilized SASL library, the mechanism |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 192 | is used for authentication. If neither 'sendemail.smtpAuth' nor `--smtp-auth` |
Junio C Hamano | 46fbbcb | 2018-11-07 03:54:16 | [diff] [blame^] | 193 | is specified, all mechanisms supported by the SASL library can be used. The |
| 194 | special value 'none' maybe specified to completely disable authentication |
| 195 | independently of `--smtp-user` |
Junio C Hamano | a1746be | 2015-08-26 23:07:07 | [diff] [blame] | 196 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 197 | --smtp-pass[=<password>]:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 198 | Password for SMTP-AUTH. The argument is optional: If no |
| 199 | argument is specified, then the empty string is used as |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 200 | the password. Default is the value of `sendemail.smtpPass`, |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 201 | however `--smtp-pass` always overrides this value. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 202 | + |
| 203 | Furthermore, passwords need not be specified in configuration files |
| 204 | or on the command line. If a username has been specified (with |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 205 | `--smtp-user` or a `sendemail.smtpUser`), but no password has been |
| 206 | specified (with `--smtp-pass` or `sendemail.smtpPass`), then |
Junio C Hamano | 5e7f131 | 2013-03-21 22:49:01 | [diff] [blame] | 207 | a password is obtained using 'git-credential'. |
Junio C Hamano | 6852289 | 2007-09-06 01:33:41 | [diff] [blame] | 208 | |
Junio C Hamano | 46fbbcb | 2018-11-07 03:54:16 | [diff] [blame^] | 209 | --no-smtp-auth:: |
| 210 | Disable SMTP authentication. Short hand for `--smtp-auth=none` |
| 211 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 212 | --smtp-server=<host>:: |
Junio C Hamano | b63afff | 2007-05-01 03:05:55 | [diff] [blame] | 213 | If set, specifies the outgoing SMTP server to use (e.g. |
| 214 | `smtp.example.com` or a raw IP address). Alternatively it can |
| 215 | specify a full pathname of a sendmail-like program instead; |
Junio C Hamano | b19b4f0 | 2006-10-29 20:47:22 | [diff] [blame] | 216 | the program must support the `-i` option. Default value can |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 217 | be specified by the `sendemail.smtpServer` configuration |
Junio C Hamano | 371470a | 2017-12-13 22:26:40 | [diff] [blame] | 218 | option; the built-in default is to search for `sendmail` in |
| 219 | `/usr/sbin`, `/usr/lib` and $PATH if such program is |
| 220 | available, falling back to `localhost` otherwise. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 221 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 222 | --smtp-server-port=<port>:: |
Junio C Hamano | 4fd58d4 | 2007-09-30 00:51:14 | [diff] [blame] | 223 | Specifies a port different from the default port (SMTP |
Junio C Hamano | bacccda | 2009-08-03 08:07:12 | [diff] [blame] | 224 | servers typically listen to smtp port 25, but may also listen to |
| 225 | submission port 587, or the common SSL smtp port 465); |
| 226 | symbolic port names (e.g. "submission" instead of 587) |
Junio C Hamano | 3d14151 | 2009-06-01 01:22:40 | [diff] [blame] | 227 | are also accepted. The port can also be set with the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 228 | `sendemail.smtpServerPort` configuration variable. |
Junio C Hamano | fce7c7e | 2008-07-02 03:06:38 | [diff] [blame] | 229 | |
Junio C Hamano | 39c7a69 | 2010-10-27 06:08:54 | [diff] [blame] | 230 | --smtp-server-option=<option>:: |
| 231 | If set, specifies the outgoing SMTP server option to use. |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 232 | Default value can be specified by the `sendemail.smtpServerOption` |
Junio C Hamano | 39c7a69 | 2010-10-27 06:08:54 | [diff] [blame] | 233 | configuration option. |
| 234 | + |
| 235 | The --smtp-server-option option must be repeated for each option you want |
| 236 | to pass to the server. Likewise, different lines in the configuration files |
| 237 | must be used for each option. |
| 238 | |
Junio C Hamano | 6852289 | 2007-09-06 01:33:41 | [diff] [blame] | 239 | --smtp-ssl:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 240 | Legacy alias for '--smtp-encryption ssl'. |
Junio C Hamano | 6852289 | 2007-09-06 01:33:41 | [diff] [blame] | 241 | |
Junio C Hamano | 58f587a | 2013-07-22 19:20:59 | [diff] [blame] | 242 | --smtp-ssl-cert-path:: |
Junio C Hamano | e8acc8e | 2015-01-14 22:01:34 | [diff] [blame] | 243 | Path to a store of trusted CA certificates for SMTP SSL/TLS |
| 244 | certificate validation (either a directory that has been processed |
| 245 | by 'c_rehash', or a single file containing one or more PEM format |
| 246 | certificates concatenated together: see verify(1) -CAfile and |
| 247 | -CApath for more information on these). Set it to an empty string |
| 248 | to disable certificate verification. Defaults to the value of the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 249 | `sendemail.smtpsslcertpath` configuration variable, if set, or the |
Junio C Hamano | e8acc8e | 2015-01-14 22:01:34 | [diff] [blame] | 250 | backing SSL library's compiled-in default otherwise (which should |
| 251 | be the best choice on most platforms). |
Junio C Hamano | 58f587a | 2013-07-22 19:20:59 | [diff] [blame] | 252 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 253 | --smtp-user=<user>:: |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 254 | Username for SMTP-AUTH. Default is the value of `sendemail.smtpUser`; |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 255 | if a username is not specified (with `--smtp-user` or `sendemail.smtpUser`), |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 256 | then authentication is not attempted. |
Junio C Hamano | 86f7588 | 2006-02-06 02:27:23 | [diff] [blame] | 257 | |
Junio C Hamano | 6ebd804 | 2012-02-28 00:17:40 | [diff] [blame] | 258 | --smtp-debug=0|1:: |
| 259 | Enable (1) or disable (0) debug output. If enabled, SMTP |
| 260 | commands and replies will be printed. Useful to debug TLS |
| 261 | connection and authentication problems. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 262 | |
Junio C Hamano | 08a3a23 | 2017-07-07 02:28:44 | [diff] [blame] | 263 | --batch-size=<num>:: |
| 264 | Some email servers (e.g. smtp.163.com) limit the number emails to be |
Junio C Hamano | 96153bf | 2018-04-25 08:25:34 | [diff] [blame] | 265 | sent per session (connection) and this will lead to a failure when |
Junio C Hamano | 08a3a23 | 2017-07-07 02:28:44 | [diff] [blame] | 266 | sending many messages. With this option, send-email will disconnect after |
| 267 | sending $<num> messages and wait for a few seconds (see --relogin-delay) |
| 268 | and reconnect, to work around such a limit. You may want to |
| 269 | use some form of credential helper to avoid having to retype |
| 270 | your password every time this happens. Defaults to the |
| 271 | `sendemail.smtpBatchSize` configuration variable. |
| 272 | |
| 273 | --relogin-delay=<int>:: |
| 274 | Waiting $<int> seconds before reconnecting to SMTP server. Used together |
| 275 | with --batch-size option. Defaults to the `sendemail.smtpReloginDelay` |
| 276 | configuration variable. |
| 277 | |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 278 | Automating |
| 279 | ~~~~~~~~~~ |
| 280 | |
Junio C Hamano | 39c7a69 | 2010-10-27 06:08:54 | [diff] [blame] | 281 | --to-cmd=<command>:: |
| 282 | Specify a command to execute once per patch file which |
| 283 | should generate patch file specific "To:" entries. |
| 284 | Output of this command must be single email address per line. |
| 285 | Default is the value of 'sendemail.tocmd' configuration value. |
| 286 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 287 | --cc-cmd=<command>:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 288 | Specify a command to execute once per patch file which |
| 289 | should generate patch file specific "Cc:" entries. |
| 290 | Output of this command must be single email address per line. |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 291 | Default is the value of `sendemail.ccCmd` configuration value. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 292 | |
Junio C Hamano | 25e7ba6 | 2009-06-14 01:03:22 | [diff] [blame] | 293 | --[no-]chain-reply-to:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 294 | If this is set, each email will be sent as a reply to the previous |
| 295 | email sent. If disabled with "--no-chain-reply-to", all emails after |
| 296 | the first will be sent as replies to the first email sent. When using |
| 297 | this, it is recommended that the first file given be an overview of the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 298 | entire patch series. Disabled by default, but the `sendemail.chainReplyTo` |
Junio C Hamano | 096dde2 | 2009-12-26 23:14:11 | [diff] [blame] | 299 | configuration variable can be used to enable it. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 300 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 301 | --identity=<identity>:: |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 302 | A configuration identity. When given, causes values in the |
| 303 | 'sendemail.<identity>' subsection to take precedence over |
| 304 | values in the 'sendemail' section. The default identity is |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 305 | the value of `sendemail.identity`. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 306 | |
| 307 | --[no-]signed-off-by-cc:: |
| 308 | If this is set, add emails found in Signed-off-by: or Cc: lines to the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 309 | cc list. Default is the value of `sendemail.signedoffbycc` configuration |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 310 | value; if that is unspecified, default to --signed-off-by-cc. |
Junio C Hamano | c915412 | 2006-02-15 02:22:06 | [diff] [blame] | 311 | |
Junio C Hamano | 45f804f | 2014-06-20 22:24:49 | [diff] [blame] | 312 | --[no-]cc-cover:: |
| 313 | If this is set, emails found in Cc: headers in the first patch of |
| 314 | the series (typically the cover letter) are added to the cc list |
| 315 | for each email set. Default is the value of 'sendemail.cccover' |
| 316 | configuration value; if that is unspecified, default to --no-cc-cover. |
| 317 | |
| 318 | --[no-]to-cover:: |
| 319 | If this is set, emails found in To: headers in the first patch of |
| 320 | the series (typically the cover letter) are added to the to list |
| 321 | for each email set. Default is the value of 'sendemail.tocover' |
| 322 | configuration value; if that is unspecified, default to --no-to-cover. |
| 323 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 324 | --suppress-cc=<category>:: |
Junio C Hamano | 9c33415 | 2008-02-12 03:18:52 | [diff] [blame] | 325 | Specify an additional category of recipients to suppress the |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 326 | auto-cc of: |
| 327 | + |
| 328 | -- |
Junio C Hamano | 94d00a5 | 2018-10-30 07:34:40 | [diff] [blame] | 329 | - 'author' will avoid including the patch author. |
| 330 | - 'self' will avoid including the sender. |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 331 | - 'cc' will avoid including anyone mentioned in Cc lines in the patch header |
| 332 | except for self (use 'self' for that). |
Junio C Hamano | 0e88f3e | 2009-06-21 08:03:25 | [diff] [blame] | 333 | - 'bodycc' will avoid including anyone mentioned in Cc lines in the |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 334 | patch body (commit message) except for self (use 'self' for that). |
| 335 | - 'sob' will avoid including anyone mentioned in Signed-off-by lines except |
Junio C Hamano | 94d00a5 | 2018-10-30 07:34:40 | [diff] [blame] | 336 | for self (use 'self' for that). |
| 337 | - 'misc-by' will avoid including anyone mentioned in Acked-by, |
| 338 | Reviewed-by, Tested-by and other "-by" lines in the patch body, |
| 339 | except Signed-off-by (use 'sob' for that). |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 340 | - 'cccmd' will avoid running the --cc-cmd. |
Junio C Hamano | 94d00a5 | 2018-10-30 07:34:40 | [diff] [blame] | 341 | - 'body' is equivalent to 'sob' + 'bodycc' + 'misc-by'. |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 342 | - 'all' will suppress all auto cc values. |
| 343 | -- |
| 344 | + |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 345 | Default is the value of `sendemail.suppresscc` configuration value; if |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 346 | that is unspecified, default to 'self' if --suppress-from is |
| 347 | specified, as well as 'body' if --no-signed-off-cc is specified. |
Junio C Hamano | 9c33415 | 2008-02-12 03:18:52 | [diff] [blame] | 348 | |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 349 | --[no-]suppress-from:: |
| 350 | If this is set, do not add the From: address to the cc: list. |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 351 | Default is the value of `sendemail.suppressFrom` configuration |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 352 | value; if that is unspecified, default to --no-suppress-from. |
| 353 | |
| 354 | --[no-]thread:: |
Junio C Hamano | 1bbd0f4 | 2009-07-23 06:20:29 | [diff] [blame] | 355 | If this is set, the In-Reply-To and References headers will be |
| 356 | added to each email sent. Whether each mail refers to the |
| 357 | previous email (`deep` threading per 'git format-patch' |
| 358 | wording) or to the first email (`shallow` threading) is |
| 359 | governed by "--[no-]chain-reply-to". |
| 360 | + |
| 361 | If disabled with "--no-thread", those headers will not be added |
| 362 | (unless specified with --in-reply-to). Default is the value of the |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 363 | `sendemail.thread` configuration value; if that is unspecified, |
Junio C Hamano | 1bbd0f4 | 2009-07-23 06:20:29 | [diff] [blame] | 364 | default to --thread. |
| 365 | + |
| 366 | It is up to the user to ensure that no In-Reply-To header already |
| 367 | exists when 'git send-email' is asked to add it (especially note that |
| 368 | 'git format-patch' can be configured to do the threading itself). |
| 369 | Failure to do so may not produce the expected result in the |
| 370 | recipient's MUA. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 371 | |
| 372 | |
| 373 | Administering |
| 374 | ~~~~~~~~~~~~~ |
Junio C Hamano | ddc5ad4 | 2007-06-27 07:14:52 | [diff] [blame] | 375 | |
Junio C Hamano | b4a9ede | 2009-04-08 07:36:32 | [diff] [blame] | 376 | --confirm=<mode>:: |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 377 | Confirm just before sending: |
| 378 | + |
| 379 | -- |
| 380 | - 'always' will always confirm before sending |
| 381 | - 'never' will never confirm before sending |
| 382 | - 'cc' will confirm before sending when send-email has automatically |
| 383 | added addresses from the patch to the Cc list |
| 384 | - 'compose' will confirm before sending the first message when using --compose. |
| 385 | - 'auto' is equivalent to 'cc' + 'compose' |
| 386 | -- |
| 387 | + |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 388 | Default is the value of `sendemail.confirm` configuration value; if that |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 389 | is unspecified, default to 'auto' unless any of the suppress options |
| 390 | have been specified, in which case default to 'compose'. |
| 391 | |
Junio C Hamano | 45889b4 | 2007-04-26 07:20:04 | [diff] [blame] | 392 | --dry-run:: |
| 393 | Do everything except actually send the emails. |
| 394 | |
Junio C Hamano | 3d14151 | 2009-06-01 01:22:40 | [diff] [blame] | 395 | --[no-]format-patch:: |
| 396 | When an argument may be understood either as a reference or as a file name, |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 397 | choose to understand it as a format-patch argument (`--format-patch`) |
| 398 | or as a file name (`--no-format-patch`). By default, when such a conflict |
Junio C Hamano | 3d14151 | 2009-06-01 01:22:40 | [diff] [blame] | 399 | occurs, git send-email will fail. |
| 400 | |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 401 | --quiet:: |
| 402 | Make git-send-email less verbose. One line per email should be |
| 403 | all that is output. |
Junio C Hamano | 45889b4 | 2007-04-26 07:20:04 | [diff] [blame] | 404 | |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 405 | --[no-]validate:: |
| 406 | Perform sanity checks on patches. |
| 407 | Currently, validation means the following: |
Junio C Hamano | a3fd83c | 2007-03-02 10:34:36 | [diff] [blame] | 408 | + |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 409 | -- |
Junio C Hamano | d88ba73 | 2017-05-30 04:14:20 | [diff] [blame] | 410 | * Invoke the sendemail-validate hook if present (see linkgit:githooks[5]). |
Junio C Hamano | 1ff0338 | 2018-07-25 22:10:48 | [diff] [blame] | 411 | * Warn of patches that contain lines longer than |
| 412 | 998 characters unless a suitable transfer encoding |
| 413 | ('auto', 'base64', or 'quoted-printable') is used; |
| 414 | this is due to SMTP limits as described by |
| 415 | http://www.ietf.org/rfc/rfc5322.txt. |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 416 | -- |
| 417 | + |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 418 | Default is the value of `sendemail.validate`; if this is not set, |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 419 | default to `--validate`. |
Junio C Hamano | 97f518c | 2006-06-22 19:49:35 | [diff] [blame] | 420 | |
Junio C Hamano | cf29d33 | 2010-12-11 07:28:56 | [diff] [blame] | 421 | --force:: |
| 422 | Send emails even if safety checks would prevent it. |
| 423 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 424 | |
Junio C Hamano | abb8a05 | 2015-12-04 22:43:11 | [diff] [blame] | 425 | Information |
| 426 | ~~~~~~~~~~~ |
| 427 | |
| 428 | --dump-aliases:: |
| 429 | Instead of the normal operation, dump the shorthand alias names from |
| 430 | the configured alias file(s), one per line in alphabetical order. Note, |
| 431 | this only includes the alias name and not its expanded email addresses. |
| 432 | See 'sendemail.aliasesfile' for more information about aliases. |
| 433 | |
| 434 | |
Junio C Hamano | c51fede | 2007-03-12 07:29:20 | [diff] [blame] | 435 | CONFIGURATION |
| 436 | ------------- |
Junio C Hamano | 6852289 | 2007-09-06 01:33:41 | [diff] [blame] | 437 | |
Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 438 | sendemail.aliasesFile:: |
Junio C Hamano | c51fede | 2007-03-12 07:29:20 | [diff] [blame] | 439 | To avoid typing long email addresses, point this to one or more |
Junio C Hamano | 042f214 | 2016-06-27 18:05:05 | [diff] [blame] | 440 | email aliases files. You must also supply `sendemail.aliasFileType`. |
Junio C Hamano | c51fede | 2007-03-12 07:29:20 | [diff] [blame] | 441 | |
Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 442 | sendemail.aliasFileType:: |
| 443 | Format of the file(s) specified in sendemail.aliasesFile. Must be |
Junio C Hamano | ce447ab | 2015-06-16 22:08:01 | [diff] [blame] | 444 | one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus', or 'sendmail'. |
| 445 | + |
| 446 | What an alias file in each format looks like can be found in |
| 447 | the documentation of the email program of the same name. The |
| 448 | differences and limitations from the standard formats are |
| 449 | described below: |
| 450 | + |
| 451 | -- |
| 452 | sendmail;; |
| 453 | * Quoted aliases and quoted addresses are not supported: lines that |
| 454 | contain a `"` symbol are ignored. |
Junio C Hamano | df5384b | 2015-06-24 21:12:12 | [diff] [blame] | 455 | * Redirection to a file (`/path/name`) or pipe (`|command`) is not |
| 456 | supported. |
| 457 | * File inclusion (`:include: /path/name`) is not supported. |
Junio C Hamano | ce447ab | 2015-06-16 22:08:01 | [diff] [blame] | 458 | * Warnings are printed on the standard error output for any |
| 459 | explicitly unsupported constructs, and any other lines that are not |
| 460 | recognized by the parser. |
| 461 | -- |
Junio C Hamano | c51fede | 2007-03-12 07:29:20 | [diff] [blame] | 462 | |
Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 463 | sendemail.multiEdit:: |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 464 | If true (default), a single editor instance will be spawned to edit |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 465 | files you have to edit (patches when `--annotate` is used, and the |
| 466 | summary when `--compose` is used). If false, files will be edited one |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 467 | after the other, spawning a new editor each time. |
| 468 | |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 469 | sendemail.confirm:: |
| 470 | Sets the default for whether to confirm before sending. Must be |
Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 471 | one of 'always', 'never', 'cc', 'compose', or 'auto'. See `--confirm` |
Junio C Hamano | 0a23522 | 2009-03-06 08:21:09 | [diff] [blame] | 472 | in the previous section for the meaning of these values. |
| 473 | |
Junio C Hamano | b9d9d90 | 2018-05-23 07:07:42 | [diff] [blame] | 474 | EXAMPLES |
| 475 | -------- |
Junio C Hamano | facbe51 | 2010-05-05 02:42:36 | [diff] [blame] | 476 | Use gmail as the smtp server |
Junio C Hamano | b77f819 | 2011-05-05 01:30:38 | [diff] [blame] | 477 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 478 | To use 'git send-email' to send your patches through the GMail SMTP server, |
| 479 | edit ~/.gitconfig to specify your account settings: |
Junio C Hamano | facbe51 | 2010-05-05 02:42:36 | [diff] [blame] | 480 | |
| 481 | [sendemail] |
Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 482 | smtpEncryption = tls |
| 483 | smtpServer = smtp.gmail.com |
| 484 | smtpUser = yourname@gmail.com |
| 485 | smtpServerPort = 587 |
Junio C Hamano | facbe51 | 2010-05-05 02:42:36 | [diff] [blame] | 486 | |
Junio C Hamano | 5213c3b | 2016-06-03 23:34:40 | [diff] [blame] | 487 | If you have multifactor authentication setup on your gmail account, you will |
Junio C Hamano | 37cf408 | 2016-05-30 01:22:14 | [diff] [blame] | 488 | need to generate an app-specific password for use with 'git send-email'. Visit |
Junio C Hamano | 96153bf | 2018-04-25 08:25:34 | [diff] [blame] | 489 | https://security.google.com/settings/security/apppasswords to create it. |
Junio C Hamano | 37cf408 | 2016-05-30 01:22:14 | [diff] [blame] | 490 | |
Junio C Hamano | b77f819 | 2011-05-05 01:30:38 | [diff] [blame] | 491 | Once your commits are ready to be sent to the mailing list, run the |
| 492 | following commands: |
| 493 | |
| 494 | $ git format-patch --cover-letter -M origin/master -o outgoing/ |
| 495 | $ edit outgoing/0000-* |
| 496 | $ git send-email outgoing/* |
| 497 | |
Junio C Hamano | 96153bf | 2018-04-25 08:25:34 | [diff] [blame] | 498 | The first time you run it, you will be prompted for your credentials. Enter the |
| 499 | app-specific or your regular password as appropriate. If you have credential |
| 500 | helper configured (see linkgit:git-credential[1]), the password will be saved in |
| 501 | the credential store so you won't have to type it the next time. |
| 502 | |
Junio C Hamano | facbe51 | 2010-05-05 02:42:36 | [diff] [blame] | 503 | Note: the following perl modules are required |
| 504 | Net::SMTP::SSL, MIME::Base64 and Authen::SASL |
| 505 | |
Junio C Hamano | b77f819 | 2011-05-05 01:30:38 | [diff] [blame] | 506 | SEE ALSO |
| 507 | -------- |
| 508 | linkgit:git-format-patch[1], linkgit:git-imap-send[1], mbox(5) |
| 509 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 510 | GIT |
| 511 | --- |
Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 512 | Part of the linkgit:git[1] suite |