Fedora 20: mutt/msmtp: 使用Gmail发送邮件

在mutt里使用fetchmail接受gmail很容易, ~/.fetchmailrc一句命令就能搞定. 今天记录一下, 使用msmtp发送Gmail, 重点在于必须使用tls, 需要的认证文件需要从ca-certificates包里获得, 路径为: /etc/pki/tls/certs/ca-bundle.crt, 这和ubuntu里不一样.

# cat ~/.msmtprc
#Company
account default
host smtp.company.com
port 25
from akong@company.com
logfile ~/Mail/.msmtp.log

#Gmail
account gmail
protocol smtp
tls on
tls_starttls on
tls_trust_file /etc/pki/tls/certs/ca-bundle.crt
host smtp.gmail.com
port 587
auth login
from kongjianjun@gmail.com
user kongjianjun@gmail.com
password xxxxxx
logfile ~/Mail/.msmtp.gmail.log

修改完msmtp可以使用下面的命令进行测试:

$ echo -e "Subject: Test MailrnrnThis is a test mail" |msmtp --debug --from=kongjianjun@gmail.com -t kongjianjun@gmail.com

在~/.muttrc里添加两个宏用来选择发送账号, 这个设置完新建邮件使用最新设置的地址.在编辑邮件过程中使用 <esc>f 来编辑发送地址.

macro generic "<esc>1" ":set from=akong@company.com"
macro generic "<esc>2" ":set from=kongjianjun@gmail.com"

同时设置秘密抄送:
macro generic "<esc>1" ":set from=akong@company.com ; my_hdr BCC:Amos Kong <akong@company.com>"
macro generic "<esc>2" ":set from=kongjianjun@gmail.com ; unmy_hdr BCC"

修改mutt里GPG 签名公钥附件名

在mutt里配置好gpg后, 加密邮件会附带一个公钥文件, 这个文件名在Gmail里是 noname, 在QQ邮箱里是tcmime.1591.1634.2471.bin. 这些都会给人造成困惑, Thunderbird 里会把这个文件命名为 signature.asc

在archlinux 的github [1], 有一个patch为mutt添加了定义公钥文件名称和描述的功能. 于是从FedoraProject[2]下载mutt代码, 重新用rpmbuild编译rpm安装. 当然也可以使用Upstream[3]的代码, 记着configure时候打开需要的特性, 如 –enable-hcache 用于缓冲邮件头部改进加载速度.

安装完mutt, 只需要在~/.Muttrc里添加如下内容, 就可以修改公钥文件名了.

set pgp_mime_signature_filename=”signature.asc”
set pgp_mime_signature_description=”Digital signature”

[1] https://github.com/felix/archlinux/blob/master/mutt/pgp_verbose_mime.patch
[2] git://pkgs.fedoraproject.org/mutt.git
[3] hg clone http://hg.code.sf.net/p/mutt/code mutt-upstream

Mutt:使用Fetchmail收邮件时在服务器上只保留部分文件夹内容

公司邮箱空间只有4G,邮件太多,特别是社区里的邮件.现在是收到警告就上去删一次,太麻烦了.当然强大的Gmail不存在这个问题.

~/.fetchmailrc 里可以执行多次poll 命令, 针对不同的文件夹采用不同的选项参数.
“no keep” 表示不在服务器保留接受过的邮件.
mda命令是对poll回来的邮件做处理, 每个poll命令后面需要紧跟一个mda命令.

# Only keep important internal mails on mail server
poll mailserver.com proto imap authenticate password user akong password mypasswd folder 'inbox' 'rhvirt' 'rhkernel' no fetchall keep ssl
mda "/usr/bin/procmail -d %T"

# Upstream maillists have archive, I also backup them in Gmail, so don't keep them in company mail server.
poll mailserver.com proto imap authenticate password user akong password mypasswd folder 'kvm-upstream' 'kernel-flood' 'seabios' 'autotest' no fetchall no keep ssl
mda "/usr/bin/procmail -d %T"

# set sleep time before next polling
set daemon 180