1GIT-SEND-EMAIL(1) Git Manual GIT-SEND-EMAIL(1)
2
3
4
6 git-send-email - Send a collection of patches as emails
7
9 git send-email [options] <file|directory|rev-list options>...
10
12 Takes the patches given on the command line and emails them out.
13 Patches can be specified as files, directories (which will send all
14 files in the directory), or directly as a revision list. In the last
15 case, any format accepted by git-format-patch(1) can be passed to git
16 send-email.
17
18 The header of the email is configurable by command line options. If not
19 specified on the command line, the user will be prompted with a
20 ReadLine enabled interface to provide the necessary information.
21
22 There are two formats accepted for patch files:
23
24 1. mbox format files
25
26 This is what git-format-patch(1) generates. Most headers and MIME
27 formatting are ignored.
28
29 2. The original format used by Greg Kroah-Hartman’s
30 send_lots_of_email.pl script
31
32 This format expects the first line of the file to contain the "Cc:"
33 value and the "Subject:" of the message as the second line.
34
36 Composing
37 --annotate
38 Review and edit each patch you’re about to send. See the
39 CONFIGURATION section for sendemail.multiedit.
40
41 --bcc=<address>
42 Specify a "Bcc:" value for each email. Default is the value of
43 sendemail.bcc.
44
45 The --bcc option must be repeated for each user you want on the bcc
46 list.
47
48 --cc=<address>
49 Specify a starting "Cc:" value for each email. Default is the value
50 of sendemail.cc.
51
52 The --cc option must be repeated for each user you want on the cc
53 list.
54
55 --compose
56 Invoke a text editor (see GIT_EDITOR in git-var(1)) to edit an
57 introductory message for the patch series.
58
59 When --compose is used, git send-email will use the From, Subject,
60 and In-Reply-To headers specified in the message. If the body of
61 the message (what you type after the headers and a blank line) only
62 contains blank (or GIT: prefixed) lines the summary won’t be sent,
63 but From, Subject, and In-Reply-To headers will be used unless they
64 are removed.
65
66 Missing From or In-Reply-To headers will be prompted for.
67
68 See the CONFIGURATION section for sendemail.multiedit.
69
70 --from=<address>
71 Specify the sender of the emails. If not specified on the command
72 line, the value of the sendemail.from configuration option is used.
73 If neither the command line option nor sendemail.from are set, then
74 the user will be prompted for the value. The default for the prompt
75 will be the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if
76 that is not set, as returned by "git var -l".
77
78 --in-reply-to=<identifier>
79 Specify the contents of the first In-Reply-To header. Subsequent
80 emails will refer to the previous email instead of this if
81 --chain-reply-to is set. Only necessary if --compose is also set.
82 If --compose is not set, this will be prompted for.
83
84 --subject=<string>
85 Specify the initial subject of the email thread. Only necessary if
86 --compose is also set. If --compose is not set, this will be
87 prompted for.
88
89 --to=<address>
90 Specify the primary recipient of the emails generated. Generally,
91 this will be the upstream maintainer of the project involved.
92 Default is the value of the sendemail.to configuration value; if
93 that is unspecified, this will be prompted for.
94
95 The --to option must be repeated for each user you want on the to
96 list.
97
98 Sending
99 --envelope-sender=<address>
100 Specify the envelope sender used to send the emails. This is useful
101 if your default address is not the address that is subscribed to a
102 list. In order to use the From address, set the value to "auto". If
103 you use the sendmail binary, you must have suitable privileges for
104 the -f parameter. Default is the value of the
105 sendemail.envelopesender configuration variable; if that is
106 unspecified, choosing the envelope sender is left to your MTA.
107
108 --smtp-encryption=<encryption>
109 Specify the encryption to use, either ssl or tls. Any other value
110 reverts to plain SMTP. Default is the value of
111 sendemail.smtpencryption.
112
113 --smtp-pass[=<password>]
114 Password for SMTP-AUTH. The argument is optional: If no argument is
115 specified, then the empty string is used as the password. Default
116 is the value of sendemail.smtppass, however --smtp-pass always
117 overrides this value.
118
119 Furthermore, passwords need not be specified in configuration files
120 or on the command line. If a username has been specified (with
121 --smtp-user or a sendemail.smtpuser), but no password has been
122 specified (with --smtp-pass or sendemail.smtppass), then the user
123 is prompted for a password while the input is masked for privacy.
124
125 --smtp-server=<host>
126 If set, specifies the outgoing SMTP server to use (e.g.
127 smtp.example.com or a raw IP address). Alternatively it can specify
128 a full pathname of a sendmail-like program instead; the program
129 must support the -i option. Default value can be specified by the
130 sendemail.smtpserver configuration option; the built-in default is
131 /usr/sbin/sendmail or /usr/lib/sendmail if such program is
132 available, or localhost otherwise.
133
134 --smtp-server-port=<port>
135 Specifies a port different from the default port (SMTP servers
136 typically listen to smtp port 25, but may also listen to submission
137 port 587, or the common SSL smtp port 465); symbolic port names
138 (e.g. "submission" instead of 587) are also accepted. The port can
139 also be set with the sendemail.smtpserverport configuration
140 variable.
141
142 --smtp-ssl
143 Legacy alias for --smtp-encryption ssl.
144
145 --smtp-user=<user>
146 Username for SMTP-AUTH. Default is the value of sendemail.smtpuser;
147 if a username is not specified (with --smtp-user or
148 sendemail.smtpuser), then authentication is not attempted.
149
150 Automating
151 --cc-cmd=<command>
152 Specify a command to execute once per patch file which should
153 generate patch file specific "Cc:" entries. Output of this command
154 must be single email address per line. Default is the value of
155 sendemail.cccmd configuration value.
156
157 --[no-]chain-reply-to
158 If this is set, each email will be sent as a reply to the previous
159 email sent. If disabled with "--no-chain-reply-to", all emails
160 after the first will be sent as replies to the first email sent.
161 When using this, it is recommended that the first file given be an
162 overview of the entire patch series. Disabled by default, but the
163 sendemail.chainreplyto configuration variable can be used to enable
164 it.
165
166 --identity=<identity>
167 A configuration identity. When given, causes values in the
168 sendemail.<identity> subsection to take precedence over values in
169 the sendemail section. The default identity is the value of
170 sendemail.identity.
171
172 --[no-]signed-off-by-cc
173 If this is set, add emails found in Signed-off-by: or Cc: lines to
174 the cc list. Default is the value of sendemail.signedoffbycc
175 configuration value; if that is unspecified, default to
176 --signed-off-by-cc.
177
178 --suppress-cc=<category>
179 Specify an additional category of recipients to suppress the
180 auto-cc of:
181
182 · author will avoid including the patch author
183
184 · self will avoid including the sender
185
186 · cc will avoid including anyone mentioned in Cc lines in the
187 patch header except for self (use self for that).
188
189 · bodycc will avoid including anyone mentioned in Cc lines in
190 the patch body (commit message) except for self (use self for
191 that).
192
193 · sob will avoid including anyone mentioned in Signed-off-by
194 lines except for self (use self for that).
195
196 · cccmd will avoid running the --cc-cmd.
197
198 · body is equivalent to sob + bodycc
199
200 · all will suppress all auto cc values.
201 Default is the value of sendemail.suppresscc configuration
202 value; if that is unspecified, default to self if
203 --suppress-from is specified, as well as body if
204 --no-signed-off-cc is specified.
205
206 --[no-]suppress-from
207 If this is set, do not add the From: address to the cc: list.
208 Default is the value of sendemail.suppressfrom configuration
209 value; if that is unspecified, default to --no-suppress-from.
210
211 --[no-]thread
212 If this is set, the In-Reply-To and References headers will be
213 added to each email sent. Whether each mail refers to the
214 previous email (deep threading per git format-patch wording) or
215 to the first email (shallow threading) is governed by
216 "--[no-]chain-reply-to".
217
218 If disabled with "--no-thread", those headers will not be added
219 (unless specified with --in-reply-to). Default is the value of
220 the sendemail.thread configuration value; if that is
221 unspecified, default to --thread.
222
223 It is up to the user to ensure that no In-Reply-To header
224 already exists when git send-email is asked to add it
225 (especially note that git format-patch can be configured to do
226 the threading itself). Failure to do so may not produce the
227 expected result in the recipient’s MUA.
228
229 Administering
230 --confirm=<mode>
231 Confirm just before sending:
232
233 · always will always confirm before sending
234
235 · never will never confirm before sending
236
237 · cc will confirm before sending when send-email has
238 automatically added addresses from the patch to the Cc list
239
240 · compose will confirm before sending the first message when
241 using --compose.
242
243 · auto is equivalent to cc + compose
244 Default is the value of sendemail.confirm configuration value;
245 if that is unspecified, default to auto unless any of the
246 suppress options have been specified, in which case default to
247 compose.
248
249 --dry-run
250 Do everything except actually send the emails.
251
252 --[no-]format-patch
253 When an argument may be understood either as a reference or as
254 a file name, choose to understand it as a format-patch argument
255 (--format-patch) or as a file name (--no-format-patch). By
256 default, when such a conflict occurs, git send-email will fail.
257
258 --quiet
259 Make git-send-email less verbose. One line per email should be
260 all that is output.
261
262 --[no-]validate
263 Perform sanity checks on patches. Currently, validation means
264 the following:
265
266 · Warn of patches that contain lines longer than 998
267 characters; this is due to SMTP limits as described by
268 http://www.ietf.org/rfc/rfc2821.txt.
269 Default is the value of sendemail.validate; if this is not
270 set, default to --validate.
271
273 sendemail.aliasesfile
274 To avoid typing long email addresses, point this to one or more
275 email aliases files. You must also supply sendemail.aliasfiletype.
276
277 sendemail.aliasfiletype
278 Format of the file(s) specified in sendemail.aliasesfile. Must be
279 one of mutt, mailrc, pine, elm, or gnus.
280
281 sendemail.multiedit
282 If true (default), a single editor instance will be spawned to edit
283 files you have to edit (patches when --annotate is used, and the
284 summary when --compose is used). If false, files will be edited one
285 after the other, spawning a new editor each time.
286
287 sendemail.confirm
288 Sets the default for whether to confirm before sending. Must be one
289 of always, never, cc, compose, or auto. See --confirm in the
290 previous section for the meaning of these values.
291
293 Written by Ryan Anderson <ryan@michonline.com[1]>
294
295 git-send-email is originally based upon send_lots_of_email.pl by Greg
296 Kroah-Hartman.
297
299 Documentation by Ryan Anderson
300
302 Part of the git(1) suite
303
305 1. ryan@michonline.com
306 mailto:ryan@michonline.com
307
308
309
310Git 1.7.1 08/16/2017 GIT-SEND-EMAIL(1)