../
我的Email工作流 =============== 2023-01-25 ## 需要安装的软件 - Maildrop - Fetchmail - Msmtp - Mutt 上述软件在几乎所有的Linux发行版中都有提供。 sudo yum install maildrop fetchmail msmtp mutt ## 收信 收信要用到两个软件,首先是fetchmail,利用IMAP协议或者POP3协议从服务端下载邮件, 然后交给maildrop处理。Unix-like操作系统下用户的邮件默认会存放在 /var/spool/mail/username。这也是maildrop默认会保存邮件的地方。如果邮件不多,没 有特殊的邮件过滤需求,可以不用配置maildrop,用默认设置就好。 至于fetchmail,则配置成从INBOX和JUNK两个目录下用IMAP协议下载未读邮件。同时不删 除邮件,只是将邮件设置为已读: poll smtp.example.org proto imap username "user@example.org" password "xxxxxxxx" options ssl keep mda "/usr/bin/maildrop"; poll smtp.example.org proto imap username "user@example.org" password "xxxxxxxx" options ssl keep folder JUNK mda "/usr/bin/maildrop"; 然后定时运行fetchmail即可检查电子邮件。 ## 阅读邮件 阅读邮件的话可以使用mutt,mutt默认会检视/var/spool/mail/username文件。为了让邮 件按照会话和时间倒序显示,可以设置mutt的邮件排序方式,在~/.muttrc中加入: set folder=~/mail set sort_aux=last-date-received set sort=threads set sort_re 对于不要的邮件,可以按d键标记删除;如果要批量移动邮件到其他邮箱文件,可以按t键 给邮件打标,然后按一下“;”键,最后按下“s”键移动邮件。 对于含有html邮件或者其他附件的邮件,可以用管道功能交给相应的应用程序显示。 例如,对于HTML邮件,可以按v键进入附件界面,选中text/html附件,按下“|”键,然后用 一个自定义脚本让firefox可以显示该邮件: #!/bin/bash cat > /tmp/hmail.html firefox /tmp/hmail.html 至于图片,则可以让Eye of Gnome,或者其他图片浏览器显示: #!/bin/bash cat > /tmp/img eog /tmp/img 或者直接保存下来: cat > [filename] ## 发信 类Unix系统下面默认使用sendmail命令发送邮件,msmtp也提供sendmail兼容的使用方式。 首先配置~/.msmtprc: account mymail tls on auth on host smtp.exmaple.org port 587 user user@example.org from user@example.org password xxxxxxxx logfile /home/user/.msmtp.log account default : mymail 然后配置自己的名字,在~/.muttrc中加入: set from="Your Fullname Here <user@example.org>" 随后,用 mutt target@example.org 即可开始编辑邮件,最后按y键发送。 ## Git邮件工作流 如果要给使用邮件列表的开源项目贡献补丁,就要使用git send-email功能。Git默认会使 用sendmail发送邮件,如果msmtp配置好了的话,只要直接使用就可以了。 假如要把最近两次commit的内容发送到某个邮件列表,只需要: git send-email --to target@example.org HEAD~2..HEAD ## 地址簿 Linux发行版中一般会提供一个命令行的地址簿应用:“abook”。Abook可以和mutt互操作。 但是个人觉得并不好用,不如直接用文本文件,用grep检索。所以这里就不再赘述了。 ## 为什么要弄得这么麻烦 最后说一下为什么要在终端里面收发邮件。 首先,Email并不是一个复杂的东西,大部分情况下只是纯文本而已。为了这么简单的信息, 使用笨重缓慢的客户端,有点大材小用。 其次,在终端里面,用来收发邮件的都是一些传统的Unix工具及其继承者,hack起来很方 便,很容易定制需求,例如:自定义一套邮件过滤规则,又或者用脚本给自己发邮件等等。 如果是电子邮件的重度用户的话这套工作流会很方便。 -------------------------------------------------------------------- Email: i (at) mistivia (dot) com