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