Skip to content

Commit

Permalink
Merge branch 'rs/imap'
Browse files Browse the repository at this point in the history
* rs/imap:
  Documentation: Improve documentation for git-imap-send(1)
  imap-send.c: more style fixes
  imap-send.c: style fixes
  git-imap-send: Support SSL
  git-imap-send: Allow the program to be run from subdirectories of a git tree
  • Loading branch information
Junio C Hamano committed Aug 20, 2008
2 parents 55e839e + c82b074 commit c8a4cbc
Show file tree
Hide file tree
Showing 4 changed files with 586 additions and 423 deletions.
78 changes: 66 additions & 12 deletions Documentation/git-imap-send.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ git-imap-send(1)

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


SYNOPSIS
Expand All @@ -13,9 +13,9 @@ SYNOPSIS

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 sent with mail clients that cannot read mailbox
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.

Typical usage is something like:
Expand All @@ -26,21 +26,75 @@ git format-patch --signoff --stdout --attach origin | git imap-send
CONFIGURATION
-------------

'git-imap-send' requires the following values in the repository
configuration file (shown with examples):
To use the tool, imap.folder and either imap.tunnel or imap.host must be set
to appropriate values.

Variables
~~~~~~~~~

imap.folder::
The folder to drop the mails into, which is typically the Drafts
folder. For example: "INBOX.Drafts", "INBOX/Drafts" or
"[Gmail]/Drafts". Required to use imap-send.

imap.tunnel::
Command used to setup a tunnel to the IMAP server through which
commands will be piped instead of using a direct network connection
to the server. Required when imap.host is not set to use imap-send.

imap.host::
A URL identifying the server. Use a `imap://` prefix for non-secure
connections and a `imaps://` prefix for secure connections.
Ignored when imap.tunnel is set, but required to use imap-send
otherwise.

imap.user::
The username to use when logging in to the server.

imap.password::
The password to use when logging in to the server.

imap.port::
An integer port number to connect to on the server.
Defaults to 143 for imap:// hosts and 993 for imaps:// hosts.
Ignored when imap.tunnel is set.

imap.sslverify::
A boolean to enable/disable verification of the server certificate
used by the SSL/TLS connection. Default is `true`. Ignored when
imap.tunnel is set.

Examples
~~~~~~~~

Using tunnel mode:

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

Using direct mode:

.........................
[imap]
Tunnel = "ssh -q user@server.com /usr/bin/imapd ./Maildir 2> /dev/null"
folder = "INBOX.Drafts"
host = imap://imap.example.com
user = bob
pass = p4ssw0rd
..........................

Using direct mode with SSL:

.........................
[imap]
Host = imap.server.com
User = bob
Pass = pwd
Port = 143
folder = "INBOX.Drafts"
host = imaps://imap.example.com
user = bob
pass = p4ssw0rd
port = 123
sslverify = false
..........................


Expand Down
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1222,7 +1222,9 @@ endif
git-%$X: %.o $(GITLIBS)
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)

git-imap-send$X: imap-send.o $(LIB_FILE)
git-imap-send$X: imap-send.o $(GITLIBS)
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
$(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL)

http.o http-walker.o http-push.o transport.o: http.h

Expand Down
5 changes: 5 additions & 0 deletions git-compat-util.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@
#include <iconv.h>
#endif

#ifndef NO_OPENSSL
#include <openssl/ssl.h>
#include <openssl/err.h>
#endif

/* On most systems <limits.h> would have given us this, but
* not on some systems (e.g. GNU/Hurd).
*/
Expand Down
Loading

0 comments on commit c8a4cbc

Please sign in to comment.