git-imap-send(1)
================

NAME
----
git-imap-send - Send a collection of patches from stdin to an IMAP folder


SYNOPSIS
--------
[verse]
'git imap-send' [-v] [-q] [--[no-]curl]


DESCRIPTION
-----------
This command uploads a mailbox generated with 'git format-patch'
into an IMAP drafts folder.  This allows patches to be sent as
other email is when using mail clients that cannot read mailbox
files directly. The command also works with any general mailbox
in which emails have the fields "From", "Date", and "Subject" in
that order.

Typical usage is something like:

git format-patch --signoff --stdout --attach origin | git imap-send


OPTIONS
-------

-v::
--verbose::
	Be verbose.

-q::
--quiet::
	Be quiet.

--curl::
	Use libcurl to communicate with the IMAP server, unless tunneling
	into it.  Ignored if Git was built without the USE_CURL_FOR_IMAP_SEND
	option set.

--no-curl::
	Talk to the IMAP server using git's own IMAP routines instead of
	using libcurl.  Ignored if Git was built with the NO_OPENSSL option
	set.


CONFIGURATION
-------------

To use the tool, `imap.folder` and either `imap.tunnel` or `imap.host` must be set
to appropriate values.

include::config/imap.txt[]

EXAMPLES
--------
Using tunnel mode:

..........................
[imap]
    folder = "INBOX.Drafts"
    tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"
..........................

Using direct mode:

.........................
[imap]
    folder = "INBOX.Drafts"
    host = imap://imap.example.com
    user = bob
    pass = p4ssw0rd
.........................

Using direct mode with SSL:

.........................
[imap]
    folder = "INBOX.Drafts"
    host = imaps://imap.example.com
    user = bob
    pass = p4ssw0rd
    port = 123
    ; sslVerify = false
.........................


[NOTE]
You may want to use `sslVerify=false`
while troubleshooting, if you suspect that the reason you are
having trouble connecting is because the certificate you use at
the private server `example.com` you are trying to set up (or
have set up) may not be verified correctly.

Using Gmail's IMAP interface:

---------
[imap]
	folder = "[Gmail]/Drafts"
	host = imaps://imap.gmail.com
	user = user@gmail.com
	port = 993
---------

[NOTE]
You might need to instead use: `folder = "[Google Mail]/Drafts"` if you get an error
that the "Folder doesn't exist".

[NOTE]
If your Gmail account is set to another language than English, the name of the "Drafts"
folder will be localized.

Once the commits are ready to be sent, run the following command:

  $ git format-patch --cover-letter -M --stdout origin/master | git imap-send

Just make sure to disable line wrapping in the email client (Gmail's web
interface will wrap lines no matter what, so you need to use a real
IMAP client).

CAUTION
-------
It is still your responsibility to make sure that the email message
sent by your email program meets the standards of your project.
Many projects do not like patches to be attached.  Some mail
agents will transform patches (e.g. wrap lines, send them as
format=flowed) in ways that make them fail.  You will get angry
flames ridiculing you if you don't check this.

Thunderbird in particular is known to be problematic.  Thunderbird
users may wish to visit this web page for more information:
  http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email

SEE ALSO
--------
linkgit:git-format-patch[1], linkgit:git-send-email[1], mbox(5)

GIT
---
Part of the linkgit:git[1] suite
