git-imap-send.html   [plain text]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.4.5" />
<title>git-imap-send(1)</title>
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
/*
  border: 1px solid red;
*/
}

body {
  margin: 1em 5% 1em 5%;
}

a {
  color: blue;
  text-decoration: underline;
}
a:visited {
  color: fuchsia;
}

em {
  font-style: italic;
  color: navy;
}

strong {
  font-weight: bold;
  color: #083194;
}

tt {
  color: navy;
}

h1, h2, h3, h4, h5, h6 {
  color: #527bbd;
  font-family: sans-serif;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}

h1, h2, h3 {
  border-bottom: 2px solid silver;
}
h2 {
  padding-top: 0.5em;
}
h3 {
  float: left;
}
h3 + * {
  clear: left;
}

div.sectionbody {
  font-family: serif;
  margin-left: 0;
}

hr {
  border: 1px solid silver;
}

p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

ul, ol, li > p {
  margin-top: 0;
}

pre {
  padding: 0;
  margin: 0;
}

span#author {
  color: #527bbd;
  font-family: sans-serif;
  font-weight: bold;
  font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
  font-family: sans-serif;
}

div#footer {
  font-family: sans-serif;
  font-size: small;
  border-top: 2px solid silver;
  padding-top: 0.5em;
  margin-top: 4.0em;
}
div#footer-text {
  float: left;
  padding-bottom: 0.5em;
}
div#footer-badges {
  float: right;
  padding-bottom: 0.5em;
}

div#preamble {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.admonitionblock {
  margin-top: 2.5em;
  margin-bottom: 2.5em;
}

div.content { /* Block element content. */
  padding: 0;
}

/* Block element titles. */
div.title, caption.title {
  color: #527bbd;
  font-family: sans-serif;
  font-weight: bold;
  text-align: left;
  margin-top: 1.0em;
  margin-bottom: 0.5em;
}
div.title + * {
  margin-top: 0;
}

td div.title:first-child {
  margin-top: 0.0em;
}
div.content div.title:first-child {
  margin-top: 0.0em;
}
div.content + div.title {
  margin-top: 0.0em;
}

div.sidebarblock > div.content {
  background: #ffffee;
  border: 1px solid silver;
  padding: 0.5em;
}

div.listingblock > div.content {
  border: 1px solid silver;
  background: #f4f4f4;
  padding: 0.5em;
}

div.quoteblock {
  padding-left: 2.0em;
  margin-right: 10%;
}
div.quoteblock > div.attribution {
  padding-top: 0.5em;
  text-align: right;
}

div.verseblock {
  padding-left: 2.0em;
  margin-right: 10%;
}
div.verseblock > div.content {
  white-space: pre;
}
div.verseblock > div.attribution {
  padding-top: 0.75em;
  text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
  text-align: left;
}

div.admonitionblock .icon {
  vertical-align: top;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: underline;
  color: #527bbd;
  padding-right: 0.5em;
}
div.admonitionblock td.content {
  padding-left: 0.5em;
  border-left: 2px solid silver;
}

div.exampleblock > div.content {
  border-left: 2px solid silver;
  padding: 0.5em;
}

div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
a.image:visited { color: white; }

dl {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
dt {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-style: normal;
  color: navy;
}
dd > *:first-child {
  margin-top: 0.1em;
}

ul, ol {
    list-style-position: outside;
}
ol.arabic {
  list-style-type: decimal;
}
ol.loweralpha {
  list-style-type: lower-alpha;
}
ol.upperalpha {
  list-style-type: upper-alpha;
}
ol.lowerroman {
  list-style-type: lower-roman;
}
ol.upperroman {
  list-style-type: upper-roman;
}

div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
  margin-top: 0.1em;
  margin-bottom: 0.1em;
}

div.tableblock > table {
  border: 3px solid #527bbd;
}
thead {
  font-family: sans-serif;
  font-weight: bold;
}
tfoot {
  font-weight: bold;
}
td > div.verse {
  white-space: pre;
}
p.table {
  margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
  border-style: none;
}
div.tableblock > table[frame="hsides"] {
  border-left-style: none;
  border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
  border-top-style: none;
  border-bottom-style: none;
}


div.hdlist {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
div.hdlist tr {
  padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
  font-weight: bold;
}
td.hdlist1 {
  vertical-align: top;
  font-style: normal;
  padding-right: 0.8em;
  color: navy;
}
td.hdlist2 {
  vertical-align: top;
}
div.hdlist.compact tr {
  margin: 0;
  padding-bottom: 0;
}

.comment {
  background: yellow;
}

@media print {
  div#footer-badges { display: none; }
}

div#toctitle {
  color: #527bbd;
  font-family: sans-serif;
  font-size: 1.1em;
  font-weight: bold;
  margin-top: 1.0em;
  margin-bottom: 0.1em;
}

div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  margin-top: 0;
  margin-bottom: 0;
}
div.toclevel2 {
  margin-left: 2em;
  font-size: 0.9em;
}
div.toclevel3 {
  margin-left: 4em;
  font-size: 0.9em;
}
div.toclevel4 {
  margin-left: 6em;
  font-size: 0.9em;
}
/* Overrides for manpage documents */
h1 {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  border-top: 2px solid silver;
  border-bottom: 2px solid silver;
}
h2 {
  border-style: none;
}
div.sectionbody {
  margin-left: 5%;
}

@media print {
  div#toc { display: none; }
}

/* Workarounds for IE6's broken and incomplete CSS2. */

div.sidebar-content {
  background: #ffffee;
  border: 1px solid silver;
  padding: 0.5em;
}
div.sidebar-title, div.image-title {
  color: #527bbd;
  font-family: sans-serif;
  font-weight: bold;
  margin-top: 0.0em;
  margin-bottom: 0.5em;
}

div.listingblock div.content {
  border: 1px solid silver;
  background: #f4f4f4;
  padding: 0.5em;
}

div.quoteblock-attribution {
  padding-top: 0.5em;
  text-align: right;
}

div.verseblock-content {
  white-space: pre;
}
div.verseblock-attribution {
  padding-top: 0.75em;
  text-align: left;
}

div.exampleblock-content {
  border-left: 2px solid silver;
  padding-left: 0.5em;
}

/* IE6 sets dynamically generated links as visited. */
div#toc a:visited { color: blue; }
</style>
</head>
<body>
<div id="header">
<h1>
git-imap-send(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>git-imap-send -
   Send a collection of patches from stdin to an IMAP folder
</p>
</div>
</div>
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><em>git imap-send</em></p></div>
</div>
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>This command uploads a mailbox generated with <em>git format-patch</em>
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.</p></div>
<div class="paragraph"><p>Typical usage is something like:</p></div>
<div class="paragraph"><p>git format-patch --signoff --stdout --attach origin | git imap-send</p></div>
</div>
<h2 id="_configuration">CONFIGURATION</h2>
<div class="sectionbody">
<div class="paragraph"><p>To use the tool, imap.folder and either imap.tunnel or imap.host must be set
to appropriate values.</p></div>
<h3 id="_variables">Variables</h3><div style="clear:left"></div>
<div class="dlist"><dl>
<dt class="hdlist1">
imap.folder
</dt>
<dd>
<p>
        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.
</p>
</dd>
<dt class="hdlist1">
imap.tunnel
</dt>
<dd>
<p>
        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.
</p>
</dd>
<dt class="hdlist1">
imap.host
</dt>
<dd>
<p>
        A URL identifying the server. Use a <tt>imap://</tt> prefix for non-secure
        connections and a <tt>imaps://</tt> prefix for secure connections.
        Ignored when imap.tunnel is set, but required to use imap-send
        otherwise.
</p>
</dd>
<dt class="hdlist1">
imap.user
</dt>
<dd>
<p>
        The username to use when logging in to the server.
</p>
</dd>
<dt class="hdlist1">
imap.pass
</dt>
<dd>
<p>
        The password to use when logging in to the server.
</p>
</dd>
<dt class="hdlist1">
imap.port
</dt>
<dd>
<p>
        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.
</p>
</dd>
<dt class="hdlist1">
imap.sslverify
</dt>
<dd>
<p>
        A boolean to enable/disable verification of the server certificate
        used by the SSL/TLS connection. Default is <tt>true</tt>. Ignored when
        imap.tunnel is set.
</p>
</dd>
<dt class="hdlist1">
imap.preformattedHTML
</dt>
<dd>
<p>
        A boolean to enable/disable the use of html encoding when sending
        a patch.  An html encoded patch will be bracketed with &lt;pre&gt;
        and have a content type of text/html.  Ironically, enabling this
        option causes Thunderbird to send the patch as a plain/text,
        format=fixed email.  Default is <tt>false</tt>.
</p>
</dd>
<dt class="hdlist1">
imap.authMethod
</dt>
<dd>
<p>
        Specify authenticate method for authentication with IMAP server.
        Current supported method is <em>CRAM-MD5</em> only.
</p>
</dd>
</dl></div>
<h3 id="_examples">Examples</h3><div style="clear:left"></div>
<div class="paragraph"><p>Using tunnel mode:</p></div>
<div class="literalblock">
<div class="content">
<pre><tt>[imap]
    folder = "INBOX.Drafts"
    tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2&gt; /dev/null"</tt></pre>
</div></div>
<div class="paragraph"><p>Using direct mode:</p></div>
<div class="literalblock">
<div class="content">
<pre><tt>[imap]
    folder = "INBOX.Drafts"
    host = imap://imap.example.com
    user = bob
    pass = p4ssw0rd</tt></pre>
</div></div>
<div class="paragraph"><p>Using direct mode with SSL:</p></div>
<div class="literalblock">
<div class="content">
<pre><tt>[imap]
    folder = "INBOX.Drafts"
    host = imaps://imap.example.com
    user = bob
    pass = p4ssw0rd
    port = 123
    sslverify = false</tt></pre>
</div></div>
</div>
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="paragraph"><p>To submit patches using GMail&#8217;s IMAP interface, first, edit your ~/.gitconfig
to specify your account settings:</p></div>
<div class="listingblock">
<div class="content">
<pre><tt>[imap]
        folder = "[Gmail]/Drafts"
        host = imaps://imap.gmail.com
        user = user@gmail.com
        port = 993
        sslverify = false</tt></pre>
</div></div>
<div class="paragraph"><p>You might need to instead use: folder = "[Google Mail]/Drafts" if you get an error
that the "Folder doesn&#8217;t exist".</p></div>
<div class="paragraph"><p>Once the commits are ready to be sent, run the following command:</p></div>
<div class="literalblock">
<div class="content">
<pre><tt>$ git format-patch --cover-letter -M --stdout origin/master | git imap-send</tt></pre>
</div></div>
<div class="paragraph"><p>Just make sure to disable line wrapping in the email client (GMail&#8217;s web
interface will wrap lines no matter what, so you need to use a real
IMAP client).</p></div>
</div>
<h2 id="_caution">CAUTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>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&#8217;t check this.</p></div>
<div class="paragraph"><p>Thunderbird in particular is known to be problematic.  Thunderbird
users may wish to visit this web page for more information:
  <a href="http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email">http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email</a></p></div>
</div>
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="git-format-patch.html">git-format-patch(1)</a>, <a href="git-send-email.html">git-send-email(1)</a>, mbox(5)</p></div>
</div>
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2011-05-20 05:58:41 UTC
</div>
</div>
</body>
</html>