一个gmail邮件检测的Shell脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
tensecor
帖子: 19
注册时间: 2007-05-17 19:39

一个gmail邮件检测的Shell脚本

#1

帖子 tensecor » 2008-08-22 12:32

这几天在学习Shell编程,看到论坛里一个用来检测邮件的脚本,见这里,在三楼。
抱着学习的态度研究了一下,觉得挺好玩的。原来的脚本只显示最新邮件计数,我作了一下修改,使它还能显示最新邮件的主题。要作到这一点,首先要研究一下gmail邮件列表的feed文件格式是什么,大概是这个样子。

代码: 全选

<?xml version="1.0" encoding="UTF-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<title>Gmail - Inbox for ******@gmail.com</title>     <------------标题
......
<fullcount>2</fullcount>             <--------新邮件计数
......
<entry>
<title>测试 test!</title>                    <------------邮件主题
....
</entry>
<entry>
<title>2 new messages in 2 topics - digest</title>    <------------邮件主题
......
</entry>
</feed>
因此除了显示计数还要显示邮件主题的话,可以利用egrep将<fullcount></fullcount>及<title>....</title>所在行提取出来,并作相应的处理即可。另外,还须注意,标题行也会提取出来,因此要忽略到提取到的第一行。
下面是我后的脚本。

代码: 全选

#!/bin/bash

gmail_login="usrname"    #replace it with your username
gmail_password="password"  #replace it with your password

dane="$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - \
https://${gmail_login}:${gmail_password}@mail.google.com/mail/feed/atom \
|egrep 'fullcount|title' \
|sed -e '2,$s/.*<fullcount>//' -e '2,$s/<\/fullcount>//' -e '2,$s/.*<title>//' -e '2,$s/<\/title>//' \
|sed -n '2,$p' \
|sed '1s/$/& new mail(s)/' )"

if [ -z "$dane" ]; then
echo "Error"
else
echo "$dane"
fi
另外,还可利用conky自动执行该脚本,将邮件监视情况显示出来,只须将下面的一行加入conkyrc即可。

代码: 全选

${color}${font WenQuanYi Zen Hei:size=8}${execi 600 ~/script/checkmail.sh}
字体最好设一个中文字体,否则如果邮件主题含有中文的话,conky显示出来的只能是方块。
这样,每隔10分钟半自动执行脚本,并显示gmail邮件信息。附上一张在我机器上显示的图片。
附件
conky.png
上次由 tensecor 在 2008-08-22 12:41,总共编辑 2 次。
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#2

帖子 aBiNg » 2008-08-22 12:37

yahoo一直在找的,实现不了。服务器不支持应该是。
头像
bobo712
帖子: 63
注册时间: 2007-09-26 15:27

#3

帖子 bobo712 » 2008-08-23 9:51

你的截图这么漂亮的
什么来的呢
tensecor
帖子: 19
注册时间: 2007-05-17 19:39

#4

帖子 tensecor » 2008-08-23 11:32

bobo712 写了:你的截图这么漂亮的
什么来的呢
我用的是论坛里solcomo的配置,
viewtopic.php?t=123232&start=0&postdays ... ight=有它的配置
回复