197 lines
5.2 KiB
Plaintext
197 lines
5.2 KiB
Plaintext
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] [(--folder|-f) <folder>]
|
|
'git imap-send' --list
|
|
|
|
|
|
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.
|
|
|
|
-f <folder>::
|
|
--folder=<folder>::
|
|
Specify the folder in which the emails have to saved.
|
|
For example: `--folder=[Gmail]/Drafts` or `-f INBOX/Drafts`.
|
|
|
|
--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.
|
|
|
|
--list::
|
|
Run the IMAP LIST command to output a list of all the folders present.
|
|
|
|
CONFIGURATION
|
|
-------------
|
|
|
|
To use the tool, `imap.folder` and either `imap.tunnel` or `imap.host` must be set
|
|
to appropriate values.
|
|
|
|
include::includes/cmd-config-section-rest.adoc[]
|
|
|
|
include::config/imap.adoc[]
|
|
|
|
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
|
|
---------
|
|
|
|
Gmail does not allow using your regular password for `git imap-send`.
|
|
If you have multi-factor authentication set up on your Gmail account, you
|
|
can generate an app-specific password for use with `git imap-send`.
|
|
Visit https://security.google.com/settings/security/apppasswords to create
|
|
it. Alternatively, use OAuth2.0 authentication as described below.
|
|
|
|
[NOTE]
|
|
You might need to instead use: `folder = "[Google Mail]/Drafts"` if you get an error
|
|
that the "Folder doesn't exist". You can also run `git imap-send --list` to get a
|
|
list of available folders.
|
|
|
|
[NOTE]
|
|
If your Gmail account is set to another language than English, the name of the "Drafts"
|
|
folder will be localized.
|
|
|
|
If you want to use OAuth2.0 based authentication, you can specify
|
|
`OAUTHBEARER` or `XOAUTH2` mechanism in your config. It is more secure
|
|
than using app-specific passwords, and also does not enforce the need of
|
|
having multi-factor authentication. You will have to use an OAuth2.0
|
|
access token in place of your password when using this authentication.
|
|
|
|
---------
|
|
[imap]
|
|
folder = "[Gmail]/Drafts"
|
|
host = imaps://imap.gmail.com
|
|
user = user@gmail.com
|
|
port = 993
|
|
authmethod = OAUTHBEARER
|
|
---------
|
|
|
|
Using Outlook's IMAP interface:
|
|
|
|
Unlike Gmail, Outlook only supports OAuth2.0 based authentication. Also, it
|
|
supports only `XOAUTH2` as the mechanism.
|
|
|
|
---------
|
|
[imap]
|
|
folder = "Drafts"
|
|
host = imaps://outlook.office365.com
|
|
user = user@outlook.com
|
|
port = 993
|
|
authmethod = XOAUTH2
|
|
---------
|
|
|
|
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).
|
|
|
|
In case you are using OAuth2.0 authentication, it is easier to use credential
|
|
helpers to generate tokens. Credential helpers suggested in
|
|
linkgit:git-send-email[1] can be used for `git imap-send` as well.
|
|
|
|
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:
|
|
https://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
|