Merge branch 'jc/maint-branch-mergeoptions'
[git] / Documentation / git-imap-send.txt
1 git-imap-send(1)
2 ================
3
4 NAME
5 ----
6 git-imap-send - Send a collection of patches from stdin to an IMAP folder
7
8
9 SYNOPSIS
10 --------
11 'git imap-send'
12
13
14 DESCRIPTION
15 -----------
16 This command uploads a mailbox generated with 'git format-patch'
17 into an IMAP drafts folder.  This allows patches to be sent as
18 other email is when using mail clients that cannot read mailbox
19 files directly. The command also works with any general mailbox
20 in which emails have the fields "From", "Date", and "Subject" in
21 that order.
22
23 Typical usage is something like:
24
25 git format-patch --signoff --stdout --attach origin | git imap-send
26
27
28 CONFIGURATION
29 -------------
30
31 To use the tool, imap.folder and either imap.tunnel or imap.host must be set
32 to appropriate values.
33
34 Variables
35 ~~~~~~~~~
36
37 imap.folder::
38         The folder to drop the mails into, which is typically the Drafts
39         folder. For example: "INBOX.Drafts", "INBOX/Drafts" or
40         "[Gmail]/Drafts". Required to use imap-send.
41
42 imap.tunnel::
43         Command used to setup a tunnel to the IMAP server through which
44         commands will be piped instead of using a direct network connection
45         to the server. Required when imap.host is not set to use imap-send.
46
47 imap.host::
48         A URL identifying the server. Use a `imap://` prefix for non-secure
49         connections and a `imaps://` prefix for secure connections.
50         Ignored when imap.tunnel is set, but required to use imap-send
51         otherwise.
52
53 imap.user::
54         The username to use when logging in to the server.
55
56 imap.pass::
57         The password to use when logging in to the server.
58
59 imap.port::
60         An integer port number to connect to on the server.
61         Defaults to 143 for imap:// hosts and 993 for imaps:// hosts.
62         Ignored when imap.tunnel is set.
63
64 imap.sslverify::
65         A boolean to enable/disable verification of the server certificate
66         used by the SSL/TLS connection. Default is `true`. Ignored when
67         imap.tunnel is set.
68
69 imap.preformattedHTML::
70         A boolean to enable/disable the use of html encoding when sending
71         a patch.  An html encoded patch will be bracketed with <pre>
72         and have a content type of text/html.  Ironically, enabling this
73         option causes Thunderbird to send the patch as a plain/text,
74         format=fixed email.  Default is `false`.
75
76 imap.authMethod::
77         Specify authenticate method for authentication with IMAP server.
78         Current supported method is 'CRAM-MD5' only.
79
80 Examples
81 ~~~~~~~~
82
83 Using tunnel mode:
84
85 ..........................
86 [imap]
87     folder = "INBOX.Drafts"
88     tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"
89 ..........................
90
91 Using direct mode:
92
93 .........................
94 [imap]
95     folder = "INBOX.Drafts"
96     host = imap://imap.example.com
97     user = bob
98     pass = p4ssw0rd
99 ..........................
100
101 Using direct mode with SSL:
102
103 .........................
104 [imap]
105     folder = "INBOX.Drafts"
106     host = imaps://imap.example.com
107     user = bob
108     pass = p4ssw0rd
109     port = 123
110     sslverify = false
111 ..........................
112
113
114 EXAMPLE
115 -------
116 To submit patches using GMail's IMAP interface, first, edit your ~/.gitconfig
117 to specify your account settings:
118
119 ---------
120 [imap]
121         folder = "[Gmail]/Drafts"
122         host = imaps://imap.gmail.com
123         user = user@gmail.com
124         port = 993
125         sslverify = false
126 ---------
127
128 You might need to instead use: folder = "[Google Mail]/Drafts" if you get an error
129 that the "Folder doesn't exist".
130
131 Once the commits are ready to be sent, run the following command:
132
133   $ git format-patch --cover-letter -M --stdout origin/master | git imap-send
134
135 Just make sure to disable line wrapping in the email client (GMail's web
136 interface will wrap lines no matter what, so you need to use a real
137 IMAP client).
138
139 CAUTION
140 -------
141 It is still your responsibility to make sure that the email message
142 sent by your email program meets the standards of your project.
143 Many projects do not like patches to be attached.  Some mail
144 agents will transform patches (e.g. wrap lines, send them as
145 format=flowed) in ways that make them fail.  You will get angry
146 flames ridiculing you if you don't check this.
147
148 Thunderbird in particular is known to be problematic.  Thunderbird
149 users may wish to visit this web page for more information:
150   http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
151
152 SEE ALSO
153 --------
154 linkgit:git-format-patch[1], linkgit:git-send-email[1], mbox(5)
155
156 GIT
157 ---
158 Part of the linkgit:git[1] suite