“All mail clients suck. This one [mutt] just sucks less.” Michael Elkins, ca. 1995

Actually I have tried a lot of desktop email clients (viz., Outlook, thunderbird, seamonkey, sylpheed, pine, alpine, claws email, kmail, evolution, opera) and in the long run they all starts sucking at the RAM. Now to be precise, I must tell you that it’s not a full-fledged mail-transfer agent (MTA), but rather a mail user agent (MUA), i.e. just an email client just like those previously mentioned.

Step 1: Create a password file, say ~/.secret/.passwd. Enter the passwords in it as follows and save the file (don’t worry, we’re going to encrypt it soon!):

GMail:    passwd1
Yahoo: passwd2

Step 2: Now encrypt the file with your gpg key (refer to the previous post for details). Don’t forget to delete the unencrypted file.

$ cd ~/.secret
$ gpg -e .passwd -o .passwd.gpg
$ rm -f .passwd

Step 3a: back to the home direcotory and modify the ~/.muttrc file: (you may equivalently do the same in ~/.mutt/muttrc)

# Process the password files first
#-------------------------------------
set my_tmpsecret=`gpg -o ~/.secret/.tmp -d ~/.secret/.passwd.gpg`
set my_gpass=`awk '/GMail:/ {print $2}' ~/.secret/.tmp`
set my_ypass=`awk '/Yahoo:/ {print $2}' ~/.secret/.tmp`
set my_del=`rm -f ~/.secret/.tmp`

Note: All user-defined variable must start with “my_”.

Step 3b: Now set up mutt for IMAP: (let’s say for GMail)

set imap_user="gmail.username@gmail.com"
set imap_pass=$my_gpass
set folder="imaps://gmail.username@imap.gmail.com:993/"
set spoolfile="+INBOX"
set postponed="+[Gmail]/Drafts"
set record=+[Gmail]/"Sent Mail"

Step 3c: Now let’s say we want to use Yahoo’s SMTP service to send emails: here’s how to set it up in ~/.muttrc:

set smtp_pass=$my_ypass
set smtp_url = "smtp://smtp.yahoo.com:587" # using port 587 for TLS
set from="yahoo_username@yahoo.com"
set realname="Your Real_Name"

Step 3d: Set your favorite editor to compose emails next in ~/.muttrc (mine is vim, so….)

set editor='vim + -c "set textwidth=72" -c "set wrap" -c "set nocp" -c "?^$"'

Step 3e: Other necessary things to put in ~/.muttrc:

set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates

Step 3f: Now time for some pretty color: (add these too to ~/.muttrc)

1
2
3
4
5
6
7
8
color  body            brightyellow    black    (((ht|f)tps?)|mailto):(//)?[^\ "\t]*|www\.[-a-z0-9.]+)[^\ .,;\t>">]
mono   body            bold                     (((ht|f)tps?)|mailto):(//)?[^\ "\t]*|www\.[-a-z0-9.]+)[^\ .,;\t>">]
color  body            brightmagenta   black   "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono   body            bold                    "[-a-z_0-9.]+@[-a-z_0-9.]+"
color  body            brightyellow    black   "^Good signature"
mono   body            bold                    "^Good signature"
color  body            brightwhite     red     "^Bad signature from.*"
mono   body            bold                    "^Bad signature from.*"

Step 3g: Some other customizations to put in ~/.muttrc:

set smart_wrap = yes
set sort = 'threads'
set sort_aux = 'last-date-received'
set imap_check_subscribed
#
ignore "Authentication-Results:"
ignore "DomainKey-Signature:"
ignore "DKIM-Signature:"
hdr_order Date From To Cc
#
set timeout=60 #Check for mail every minute
set mail_check=5

Step 3h: Now save the file in your home directory and make it readable by none but the current user (you of course!):

$ chmod 700 ~/.muttrc

Step 4:Next create the these two directories to save mutt related stuffs:

$ mkdir .mutt
$ mkdir .mutt/cache

Step 5:To render the HTML/etc messages correctly create another file ~/.mailcap with the following as its content make it readable by you only (use chmod as above)

text/html; lynx -dump %s ; copiousoutput

Change lynx to links/links2/elinks depending what you actually have on your system.

Things to do:
I still cannot use multiple IMAP inboxes at a time — the account-hook / folder-hook does not seem to work. I need to spend some more time on it.

Here’s how to use multiple IMAP accounts in mutt.

References for this post: Crunchbang Linux site (my latest favorite distro!),muttrc builder, and mutt.org, of course. Another old reference from the days when mutt wouldn’t do SMTP. Also look at the references at the end of this wikipedia page. To build mutt from the source, refer to this.

References for to-do: Derkellerand mutt-users forum (from 2002!).

转自:https://nixtricks.wordpress.com/2010/05/05/mutt-configure-mutt-to-receive-email-via-imap-and-send-via-smtp/#comment-3098

[mutt] Configure mutt to receive email via IMAP and send via SMTP的更多相关文章

  1. VMWare虚拟机实例拷贝到另一台服务器后出现Error in the RPC receive loop: RpcIn: Unable to send.错误的解决

    把一个VMWare虚拟机实例拷贝到另一台服务器后,在事件查看器中的应用程序日志中不断出现Error in the RPC receive loop: RpcIn: Unable to send.错误, ...

  2. 邮件发送失败问题:Sending the email to the following server failed : smtp.qiye.163.com:25

    [邮件发送错误] : Sending the email to the following server failed : smtp.qiye.163.com:25, {}org.apache.com ...

  3. 解决Odoo出现的Unable to send email, please configure the sender's email address or alias.

    这是由于当前登录用户的邮件地址信息缺失造成的,需要设置其邮件地址. 方法:使用创建该用户的管理员帐号登录系统,开启技术特性,在需要设置邮箱地址的用户界面点击相关的业务伙伴标签链接,如图所示:

  4. Powershell Mail module, 发送outbox 里的全部邮件(一个.csv文件代表一封邮件)

    把creating mail代码写到调用处,往outbox写入 mailxxx.csv文件,入面记录了邮件的主要内容 写入 #template $TMP = IMPORT-CSV "$($d ...

  5. cetos6配置用msmtp和mutt发邮件(阿里云)

    Linux下可以直接用mail命令发送邮件,但是发件人是user@servername,如果机器没有外网的dns,其他人就无法回复.此时,有一个可以使用网络免费邮箱服务的邮件发送程序就比较重要了.ms ...

  6. L05-Linux部署msmtp+mutt发送邮件

    一.前言 首先,得明白发送一封邮件的流程,下面一段理论摘抄自廖雪峰的官网网站https://www.liaoxuefeng.com/article/00137387674890099a71c04005 ...

  7. 使用mutt+msmtp在Linux命令行界面下发邮件(续)

    一年前写过一篇<使用mutt+msmtp在Linux命令行界面下发邮件>,但是最近想照着文中的办法解决新的问题时发现又有新的疑惑了,所以就有了今天这篇“续集”. 首先说说msmtp.如果你 ...

  8. Zabbix利用msmtp+mutt发送邮件报警

    操作系统:CentOS 7 Web环境:Nginx+MySQL+PHP zabbix版本:zabbix-2.4.8.tar.gz 邮件服务:msmtp-1.4.32.tar.bz2     #http ...

  9. [svc]msmtp+mutt发附件,发邮件给多个人

    环境:centos6.7 x86-64 内网有web服务器(curl可展示目录) #预安装软件 yum install lrzsz ntpdate sysstat dos2unix wget teln ...

随机推荐

  1. Oracle 12c 创建用户

    本文转载自 http://blog.itpub.net/29047826/viewspace-1453577/,侵删.   12c推出了可插拔库,管理用户也分为两种:本地用户和公用用户.本地用户是指在 ...

  2. [中英对照]Booting Process in Linux RHEL 7 | Linux RHEL 7启动过程

    Booting Process in Linux RHEL 7 | Linux RHEL 7启动过程 In this post, I will guide you booting process in ...

  3. Hardware Emulation Platform (硬件仿真平台) 在IC验证中的运用情况如何?

    三个EDA公司都有自己的hardware emulation verification platform: Cadence Palladium, Synopsys ZeBu, Mentor Veloc ...

  4. 《TCP/IP详解》

    TCP/IP概述 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本 ...

  5. 【AppScan】入门工作原理详解

    AppScan,即 AppScan standard edition.其安装在 Windows 操作系统上,可以对网站等 Web 应用进行自动化的应用安全扫描和测试.Rational AppScan( ...

  6. 【C#高级】泛型(一)

    泛型,.net 2.0之后出现,基本只要代码中出现 ‘<>’ 尖括号就可以确定是泛型. 在2.0之前大多是使用Object来代替,因为所有类都是Object的派生类,根据继承的原理Obje ...

  7. visual studio清理nuget包缓存

    最近在使用nuget包的时候发现一个问题.昨天我组长明明发了一个新版本的包上去,可在我电脑上死活找不到这个新版本的包.刷新,重启vs,重启电脑,好长时间才出来.今天又碰到这个问题了,在同事电脑上都能搜 ...

  8. 使用k8s创建容器一直处于ContainerCreating状态

    容器报错信息为(两种): FailedSynError syncing pod, skipping: failed to {kubelet 127.0.0.1} Warning FailedSync ...

  9. js原型及原型链解析

    js原型.原型链 这几天闲了看了下js的原型,以下内容为个人理解,如有错误,尽请指正. 首先,明确一点:js中的对象分为普通对象和函数对象,一般我们自定义的可以被new的函数称作函数对象,另外js内置 ...

  10. 集合框架以及Map(一)

    集合又称容器,编程思想中对其的定义为持有对象 我们在使用集合或者数组时得到最多的异常就是数组下表越界异常 Java.lang.ArrayIndexOutOfBoundsException这篇文章我们不 ...