http://hi.baidu.com/yunpengwu/blog/item/66922b2ee41247574fc22611.html 1. 查找过滤邮件 邮件客户端的一个非常重要的功能就是查找邮件,mutt 可以非常快速方便的查找邮件,并且对查找到的邮件进行批量处理,这也正是mutt 深深吸引我的地方。 用l来过滤邮
http://hi.baidu.com/yunpengwu/blog/item/66922b2ee41247574fc22611.html
1. 查找过滤邮件
邮件客户端的一个非常重要的功能就是查找邮件,mutt 可以非常快速方便的查找邮件,并且对查找到的邮件进行批量处理,这也正是mutt 深深吸引我的地方。
用l来过滤邮件,可以采用mutt自定义的patterns
常用的patterns:
~c EXPR cc给EXPR
~f EXPR from来自EXPR
~t EXPR to给EXPR
~s EXPR subject是EXPR
~C EXPR to或者cc给EXPR
~d [min]-[max] 发送日期在这个时间段内
例子:
绝对时间:
~d 15/1/08-18/1/08 在08年1月15日至18日之间
~d 15- 在当月15日之后
~d -25 在当月25日之前
~d 15*2d 在当月15日前后各两天
~d 15-2w 在当月15日之前两周
~d 15/2+1m 在当年2月15日之后1月
~d 15-1y 在当月15日之前1年
相对时间:
~d <1d 一天内的邮件
~d >1w 一周前的邮件
~d <2m 两个月内的邮件
~d <1y 一年内的邮件
两个patterns自动与操作,可以用|来或操作,用!来否操作。
2.中文乱码的问题
这个问题目前也没有完全搞定,比如说qq邮箱收来的邮件还有不少乱码。好在我不用qq邮箱,一般的邮件乱码问题都已经解决。
首先是终端的编码为utf-8,配置文件中需要有:
set charset="utf-8"
解决收到的邮件中文附件名为乱码的问题
set rfc2047_parameters=yes
发出中文附件是乱码问题,需要打patch解决,整过一次没整好。
附件是us-ascii的格式附件的显示乱码问题
charset-hook ^us-ascii$ utf-8
gmail发来的html邮件乱码问题,这个问题比较麻烦。
确保muttrc中有
auto_view text/html
然后加一个文件~/.mailcap 内容如下:
text/html ; w3m -T text/html -I %{charset} -dump %s ; nametemplate=%s.html ; needsterminal; copiousoutput
可以对比上句和/etc/mailcap中对应那句的区别,增加了个编码的配置就搞定了。
3. 兄弟,发个文档过来!
一般给别人发送个文档是怎么操作?打开邮件客户端,写好收件人,在层层目录结构中寻找文档,添加附件,发送。——太过麻烦!
在资源管理器里面选定多个文档鼠标右键发送可以不?写个小脚本就搞定!
脚本~/bin/mutt.sh
------------------------------
#!/bin/bash
# 用mutt来发送多个附件
MAIL="mutt "
while [ ! -z $1 ]
do
MAIL=$MAIL"-a $1 "
shift
done
gnome-terminal -e "$MAIL"
------------------------------
同时做一个软连接:
$ln -s ~/bin/mutt.sh ~/.gnome2/nautilus-scripts/mutt.sh
然后在nautilus里面选择多个文件,右键->Scripts->mutt.sh即可弹出一个终端窗口让你输入收件人,开始发送。
由于没有解决发送中文附件乱码问题,想了另外的方法来解决。主要是发给用windows的编码是GBK的同事们。
脚本~/bin/mutt-zh.sh
------------------------------
#!/bin/bash
# 用mutt来发送中文文件
TIME=`date +%H%M%S`
rm -rf /tmp/doc.zip
rm -fr /tmp/$TIME
mkdir -p /tmp/$TIME
while [ ! -z $1 ]
do
cp $1 /tmp/$TIME/$1
convmv -t GBK -f UTF-8 --notest -r /tmp/$TIME
shift
done
cd /tmp/$TIME
zip /tmp/doc.zip -r *
EXE="mutt -a /tmp/doc.zip "
gnome-terminal -e "$EXE"
------------------------------
4. 定时删除服务器上指定邮件
好一点的邮件服务器都有这种功能,每次收取邮件的时候保存邮件在服务器上,同时删除掉指定时间之前的邮件。
借用crontab和一个简单的脚本就可以实现删除服务器上几乎任意条件的邮件!
脚本~/bin/deletemail.sh
------------------------------
#!/bin/bash
mutt -f pop://user:passwd@mailserver -e 'push "
~s广告|~d>1m"'
------------------------------
用正则表达式匹配删除服务器上标题是“广告”和一个月之前的邮件。
$crontab -u aaron -e
输入:
30 13 * * * /home/aaron/bin/deletemail.sh
制定计划每天中午1:30,脚本自动到服务器上删除这种类型的邮件。
5. 定时备份文件
能定时删除服务器上的邮件,自然可以定时将自己的重要笔记打包作为附件发送到指定邮箱。
脚本~/bin/backup.sh
------------------------------
#!/bin/bash
EMAIL="user@mailserver"
MESSAGE="备份资料"
DATE=`date "+%F %T"`
NOTES=/tmp/notes-`date +%y%m%d%H%M%S`.tar.bz2
cd ~; tar jcvf $NOTES notes
echo $MESSAGE | mutt $EMAIL -s "backup $DATE" -a $NOTES
------------------------------
同样用crontab 定时执行这个脚本即可。
6. 发送所编辑文件的部份文本内容
如果是用VIM 作为文本编辑器,将所编辑文件的一部分作为正文发送邮件是件很容易的事情,只需要在vimrc 中增加如下:
vmap ,ml :w! /tmp/mutt-mail-from-vim.tmp:!mutt -i /tmp/mutt-mail-from-vim.tmp
就一切搞定!
=======
相关链接
Linux发送邮件:mutt中级技巧
Linux发送邮件客户端mutt入门
Linux下发送邮件命令:mutt 和 mail 以及 脚本