<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Lex Technica (gpg)</title><link>http://code.lexarcana.com/</link><description></description><atom:link href="http://code.lexarcana.com/categories/gpg.xml" type="application/rss+xml" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 14 Jun 2015 19:14:53 GMT</lastBuildDate><generator>http://getnikola.com/</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Text-based email setup with mbsync and mu</title><link>http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html</link><dc:creator>Ravi R Kiran</dc:creator><description>&lt;div&gt;&lt;p&gt;Composing mail without the assistance of &lt;a class="reference external" href="https://www.gnu.org/software/emacs/"&gt;emacs&lt;/a&gt; is painful for serious emacs users. &lt;a class="reference external" href="http://www.kde.org/applications/internet/kmail/"&gt;KMail&lt;/a&gt; (supplemented with &lt;a class="reference external" href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html"&gt;emacsclient&lt;/a&gt;) had been my email client of choice for more than a decade. While KMail continues to be an excellent mail client, I started looking more into moving my entire email flow into emacs. Sending mail from emacs is pretty easy with &lt;a class="reference external" href="https://www.gnu.org/software/emacs/manual/html_node/smtpmail/"&gt;smtpmail&lt;/a&gt;; so the only issue was finding a way to fetch and display email. After trawling The Interwebz, &lt;a class="reference external" href="http://www.djcbsoftware.nl/code/mu/mu4e.html"&gt;mu4e&lt;/a&gt; seemed to fit in best with my workflow.&lt;/p&gt;
&lt;div class="section" id="initial-setup"&gt;
&lt;h2&gt;Initial setup&lt;/h2&gt;
&lt;p&gt;Setting up &lt;a class="reference external" href="http://www.djcbsoftware.nl/code/mu/mu4e.html"&gt;mu4e&lt;/a&gt; was pretty easy since its parent package &lt;a class="reference external" href="http://www.djcbsoftware.nl/code/mu/"&gt;mu&lt;/a&gt; can be set up as a git submodule (or as a git subtree) of an emacs initialization directory and can then be compiled in place. Most of the initial setup is straightforward since the built in manual is pretty comprehensive; &lt;a class="reference external" href="http://www.macs.hw.ac.uk/~rs46/posts/2014-01-13-mu4e-email-client.html"&gt;Rob Stewart's excellent guide&lt;/a&gt; is a handy summary for the impatient. The only other initial setup choice was between &lt;a class="reference external" href="http://en.wikipedia.org/wiki/OfflineIMAP"&gt;offlineimap&lt;/a&gt; and &lt;a class="reference external" href="http://isync.sourceforge.net/mbsync.html"&gt;mbsync&lt;/a&gt;. After initial attempts at setting up both, I ended up choosing mbsync.&lt;/p&gt;
&lt;div class="section" id="fetching-email-with-mbsync"&gt;
&lt;h3&gt;Fetching email with mbsync&lt;/h3&gt;
&lt;p&gt;While the &lt;a class="reference external" href="http://isync.sourceforge.net/mbsync.html"&gt;mbsync man page&lt;/a&gt; is pretty comprehensive, it can be a little intimidating to set it up for use with mu4e. The basic setup for one email account is similar to the following:&lt;/p&gt;
&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-1"&gt; 1&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-2"&gt; 2&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-3"&gt; 3&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-4"&gt; 4&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-5"&gt; 5&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-6"&gt; 6&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-7"&gt; 7&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-8"&gt; 8&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-9"&gt; 9&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-10"&gt;10&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-11"&gt;11&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-12"&gt;12&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-13"&gt;13&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-14"&gt;14&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-15"&gt;15&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-16"&gt;16&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-17"&gt;17&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-18"&gt;18&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-19"&gt;19&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-20"&gt;20&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-21"&gt;21&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-22"&gt;22&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-23"&gt;23&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-24"&gt;24&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-25"&gt;25&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-26"&gt;26&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_17046a3dc74143f8a3371109d9ffad90-27"&gt;27&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;pre class="code text"&gt;&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-1"&gt;&lt;/a&gt;IMAPAccount MyAccountName
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-2"&gt;&lt;/a&gt;Host imap.gmail.com
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-3"&gt;&lt;/a&gt;User MyAccountName@gmail.com
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-4"&gt;&lt;/a&gt;PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk '/machine imap.gmail.com login MyAccountName@gmail.com/ {print $NF}'"
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-5"&gt;&lt;/a&gt;# Use SSL
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-6"&gt;&lt;/a&gt;UseIMAPS yes
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-7"&gt;&lt;/a&gt;CertificateFile /etc/pki/tls/certs/ca-bundle.crt
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-8"&gt;&lt;/a&gt;
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-9"&gt;&lt;/a&gt;IMAPStore MyAccountName-remote
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-10"&gt;&lt;/a&gt;Account MyAccountName
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-11"&gt;&lt;/a&gt;
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-12"&gt;&lt;/a&gt;MaildirStore MyAccountName-local
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-13"&gt;&lt;/a&gt;# The trailing "/" is important
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-14"&gt;&lt;/a&gt;Path ~/.mail/MyAccountName/
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-15"&gt;&lt;/a&gt;Inbox ~/.mail/MyAccountName/Inbox
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-16"&gt;&lt;/a&gt;
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-17"&gt;&lt;/a&gt;Channel MyAccountName
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-18"&gt;&lt;/a&gt;Master :MyAccountName-remote:
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-19"&gt;&lt;/a&gt;Slave :MyAccountName-local:
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-20"&gt;&lt;/a&gt;# Exclude everything under the internal [Gmail] folder, except the interesting folders
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-21"&gt;&lt;/a&gt;Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail" "[Gmail]/Drafts"
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-22"&gt;&lt;/a&gt;# Or include everything
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-23"&gt;&lt;/a&gt;#Patterns *
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-24"&gt;&lt;/a&gt;# Automatically create missing mailboxes, both locally and on the server
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-25"&gt;&lt;/a&gt;Create Both
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-26"&gt;&lt;/a&gt;# Save the synchronization state files in the relevant directory
&lt;a name="rest_code_17046a3dc74143f8a3371109d9ffad90-27"&gt;&lt;/a&gt;SyncState *
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;The set up above is typical for Google mail. There are a couple of interesting bits, however. First, the use of SSL requires that certificate bundles be available to mbsync. On Fedora Linux 19 and later, the easiest way is to install &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ca-certificates.noarch&lt;/span&gt;&lt;/tt&gt; using the package manager. The location of installed certificates is provided to mbsync via the &lt;tt class="docutils literal"&gt;CertificateFile&lt;/tt&gt; directive.&lt;/p&gt;
&lt;p&gt;The second and more interesting part is the handling of passwords.&lt;/p&gt;
&lt;div class="section" id="using-gpg-for-mbsync-passwords"&gt;
&lt;h4&gt;Using GPG for mbsync passwords&lt;/h4&gt;
&lt;p&gt;The basic idea is that every time a password is needed, an particular file is decrypted and loaded. The key for the decryption can be prompted for and be stashed by &lt;a class="reference external" href="https://www.gnupg.org/documentation/manuals/gnupg/index.html#Top"&gt;gpg-agent&lt;/a&gt;. The first step is to create a GPG key, which is covered very well &lt;a class="reference external" href="https://wiki.archlinux.org/index.php/GnuPG"&gt;elsewhere&lt;/a&gt;. The &lt;a class="reference external" href="https://www.gnu.org/software/emacs/manual/html_node/auth/Help-for-users.html"&gt;standard authentication mechanism&lt;/a&gt; for gnus and smtpmail can be reused to store login information for &lt;tt class="docutils literal"&gt;mbsync&lt;/tt&gt;. For any one account, the password for IMAP access and the password for sending email (usually the same) can be added to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.authinfo.gpg&lt;/span&gt;&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class="code text"&gt;&lt;a name="rest_code_cb4ddaddbf8849d6980bd930320827db-1"&gt;&lt;/a&gt;machine imap.gmail.com login MyAccountName@gmail.com password MYPASSWORD
&lt;a name="rest_code_cb4ddaddbf8849d6980bd930320827db-2"&gt;&lt;/a&gt;machine smtp.gmail.com login MyAccountName@gmail.com password MYPASSWORD
&lt;/pre&gt;&lt;p&gt;The first line is used by &lt;tt class="docutils literal"&gt;mbsync&lt;/tt&gt; and the second by &lt;a class="reference external" href="https://www.gnu.org/software/emacs/manual/html_node/smtpmail/"&gt;smtpmail&lt;/a&gt;. The line:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk '/machine imap.gmail.com login MyAccountName@gmail.com/ {print $NF}'"
&lt;/pre&gt;
&lt;p&gt;automatically fetches the password for the given account from &lt;tt class="docutils literal"&gt;authinfo.gpg&lt;/tt&gt;. It is easy now with a couple of simple modifications to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.gnupg/gpg-agent.conf&lt;/span&gt;&lt;/tt&gt; to make sure that the password prompt appears under X and that the key is stashed:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
pinentry-program /usr/bin/pinentry-qt4
default-cache-ttl 720000
max-cache-ttl 720000
&lt;/pre&gt;
&lt;p&gt;The stash time for passwords is set to 200 hours.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="initial-mu4e-setup"&gt;
&lt;h3&gt;Initial mu4e setup&lt;/h3&gt;
&lt;p&gt;I chose to set up &lt;a class="reference external" href="http://www.djcbsoftware.nl/code/mu/mu4e.html"&gt;mu4e&lt;/a&gt; sources as a git submodule in my emacs directory with path &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;site-lisp/mu&lt;/span&gt;&lt;/tt&gt;, which necessitated the following changes to my emacs start up code:&lt;/p&gt;
&lt;pre class="code elisp"&gt;&lt;a name="rest_code_440b5f5b86a94ad4bd8e8edd8dc4ef58-1"&gt;&lt;/a&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-to-list&lt;/span&gt; &lt;span class="ss"&gt;'Info-additional-directory-list&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ravi/emacs-file&lt;/span&gt; &lt;span class="s"&gt;"site-lisp/mu/mu4e"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a name="rest_code_440b5f5b86a94ad4bd8e8edd8dc4ef58-2"&gt;&lt;/a&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;mu4e-mu-binary&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ravi/emacs-file&lt;/span&gt; &lt;span class="s"&gt;"site-lisp/mu/mu/mu"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;The next part ensures that the main &lt;tt class="docutils literal"&gt;mu4e&lt;/tt&gt; window is quickly accesible from a key binding without opening duplicate buffers:&lt;/p&gt;
&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-1"&gt; 1&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-2"&gt; 2&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-3"&gt; 3&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-4"&gt; 4&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-5"&gt; 5&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-6"&gt; 6&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-7"&gt; 7&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-8"&gt; 8&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-9"&gt; 9&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-10"&gt;10&lt;/a&gt;
&lt;a href="http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html#rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-11"&gt;11&lt;/a&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;pre class="code elisp"&gt;&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-1"&gt;&lt;/a&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;ravi/switch-to-mu4e&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-2"&gt;&lt;/a&gt;  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-3"&gt;&lt;/a&gt;  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;buf&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;or&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;boundp&lt;/span&gt; &lt;span class="ss"&gt;'mu4e~headers-buffer-name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-4"&gt;&lt;/a&gt;                       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;get-buffer&lt;/span&gt; &lt;span class="nv"&gt;mu4e~headers-buffer-name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-5"&gt;&lt;/a&gt;                 &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;get-buffer&lt;/span&gt; &lt;span class="s"&gt;"*mu4e-main*"&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-6"&gt;&lt;/a&gt;    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;buf&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-7"&gt;&lt;/a&gt;        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;get-buffer-window&lt;/span&gt; &lt;span class="nv"&gt;buf&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-8"&gt;&lt;/a&gt;            &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;select-window&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;get-buffer-window&lt;/span&gt; &lt;span class="nv"&gt;buf&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-9"&gt;&lt;/a&gt;          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;switch-to-buffer&lt;/span&gt; &lt;span class="nv"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-10"&gt;&lt;/a&gt;      &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;mu4e&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;a name="rest_code_6f6cdfe6801a4a53aac49a8f424c7b7d-11"&gt;&lt;/a&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;bind-key&lt;/span&gt; &lt;span class="s"&gt;"C-'"&lt;/span&gt; &lt;span class="ss"&gt;'ravi/switch-to-mu4e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;That's all for now. We will cover setting up multiple accounts with different polling intervals in a future post.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;</description><category>emacs</category><category>gpg</category><category>mbsync</category><category>mu</category><guid>http://code.lexarcana.com/posts/text-based-email-setup-with-mbsync-and-mu.html</guid><pubDate>Wed, 16 Jul 2014 04:22:07 GMT</pubDate></item></channel></rss>