发布脚本:定期清理垃圾邮件、垃圾箱和收件箱的过期邮件
脚本名字: cleanupmaildir.pl运行环境:
下载附件,gunzip解压缩,然后拷贝这个文件到extman/tools/目录下,即可使用。
运行后的帮助
[quote]
# ./cleanupmaildir.pl
usage: ./cleanupmaildir.pl [options] ...
Options:
-d, --domain=domain.tld domain name
-e, --expiredate=180 default: 180 (days). expire date
-u, --ignoreuserlist=/path/to/userlist ignore user list
-l, --logfile=/path/to/logfile delete log to this file
-c, --check check file's path before delete it
-i, --inbox default: No Delete. Delete inbox email
-h, --help help
[/quote]
运行示例:
# ./cleanupmaildir.pl -d extmail.org -e 180 -u userlist.txt -l /var/log/cleanupmaildir.log
-d意思就是输入你想清理的域
-e是过期时间,默认为180天
-u是忽略用户列表,即这些用户不做清理
-l是指定日志写入的地方,如果不指定则把日志打印到标准输出
-c打印出所有用户要删除的文件路径,但是并不做删除(多谢chris建议)
-i就是指定清理收件箱,默认为不清理,这个选项请慎用
-h打印帮助
加入crontab吧,呵呵,每日清理掉“垃圾邮件”和”垃圾箱“这两个目录里的邮件,释放你的磁盘空间。
[attach]2027[/attach] 顶!!!!!!!!11
这个相当需要
测试一下 在清理之前,能看得到清理清单吗?[[i] 本帖最后由 chris 于 2010-8-10 12:14 编辑 [/i]] [root@mail tools]# ./cleanupmaildir.pl -d extmail.org -e 30 -l /var/log/cleanupmaildir.log
extmail.org no exists!
[[i] 本帖最后由 buyixiaozi 于 2010-8-10 12:42 编辑 [/i]] 经测试,EMOS1.5.0 的垃圾邮箱不会清除。。。 清理清单你是看不懂的,一大串文字 社区又要火了。:D :D :D :D :D :D :D :D [quote]原帖由 [i]chris[/i] 于 2010-8-10 12:11 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81313&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
在清理之前,能看得到清理清单吗? [/quote]
意思是先打印出来要清理的文件列表吗?? 这个列表其实就是要被删除邮件,仅仅是个全路径。如果你用-l参数,会存入日志里,如果不用会打印到标准输出。
清理之前看不到。 [quote]原帖由 [i]buyixiaozi[/i] 于 2010-8-10 12:18 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81314&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
[root@mail tools]# ./cleanupmaildir.pl -d extmail.org -e 30 -l /var/log/cleanupmaildir.log
extmail.org no exists! [/quote]
我用extmail.org只是一个示例而已。得改成你自己的域名。 [quote]原帖由 [i]herong[/i] 于 2010-8-10 12:56 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81316&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
经测试,EMOS1.5.0 的垃圾邮箱不会清除。。。 [/quote]
我是在最新版extman-1.1下测试的。要不你升级到extman-1.1试试?? [quote]原帖由 [i]chifeng[/i] 于 2010-8-10 13:15 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81319&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
意思是先打印出来要清理的文件列表吗?? 这个列表其实就是要被删除邮件,仅仅是个全路径。如果你用-l参数,会存入日志里,如果不用会打印到标准输出。
清理之前看不到。 ... [/quote]
对,我希望先看到清理的文件列表。
使用-l参数,也只能在删除之后才能看到日志啊。 [quote]原帖由 [i]chifeng[/i] 于 2010-8-10 13:15 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81319&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
意思是先打印出来要清理的文件列表吗?? 这个列表其实就是要被删除邮件,仅仅是个全路径。如果你用-l参数,会存入日志里,如果不用会打印到标准输出。
清理之前看不到。 ... [/quote]
不用详细的文件列表,我只是想看到用户目录。比如:
/home/domains/extmail.org/user1
/home/domains/extmail.org/user2
我只想看到这一级目录列表。 不知道效果如何,架个虚拟机先试下看看。谢谢! 呵呵 好东西 得看看 [quote]原帖由 [i]chris[/i] 于 2010-8-10 13:33 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81323&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
不用详细的文件列表,我只是想看到用户目录。比如:
/home/domains/extmail.org/user1
/home/domains/extmail.org/user2
我只想看到这一级目录列表。 [/quote]
已经更新脚本,现在加上-c参数就是显示用户和该用户要删除邮件路径,但是不做删除操作。请测试。 [quote]原帖由 [i]linkesky[/i] 于 2010-8-10 14:04 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81324&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
不知道效果如何,架个虚拟机先试下看看。谢谢! [/quote]
欢迎测试,呵呵,有问题请跟帖。。。:victory: [quote]原帖由 [i]chifeng[/i] 于 2010-8-10 14:21 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81326&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
已经更新脚本,现在加上-c参数就是显示用户和该用户要删除邮件路径,但是不做删除操作。请测试。 [/quote]
多谢Chifeng大哥。 [quote]原帖由 [i]chris[/i] 于 2010-8-10 14:25 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81328&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
多谢Chifeng大哥。 [/quote]
:handshake :lol 请问一下:
1、不加-I 是不是不清理收件箱,即使收件箱中的邮件超过180天。
2、180天这个时间参数是只针对收件箱还是针对所有文件夹下的文件。
3、这段话改成这样是不是也可以清理发件箱等
my @sysdir = ("Maildir/.Trash/cur","Maildir/.Drafts/cur","Maildir/.Sent/cur","Maildir/.Junk/cur");
if($opt{inbox}){
@sysdir = ("Maildir/cur", "Maildir/.Trash/cur","Maildir/.Drafts/cur","Maildir/.Sent/cur","Maildir/.Junk/cur");
} [quote]原帖由 [i]herong[/i] 于 2010-8-11 09:43 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81394&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
请问一下:
1、不加-I 是不是不清理收件箱,即使收件箱中的邮件超过180天。
2、180天这个时间参数是只针对收件箱还是针对所有文件夹下的文件。
3、这段话改成这样是不是也可以清理发件箱等
my @sysdir = ("Maildir/.Tra ... [/quote]
1,加-i即--inbox是清理收件箱,不加是不清理。
2,针对.Junk和.Trash,如果加了--inbox参数,则再清理Maildir/cur 3,是的,如果你加上.Sent和.Drafts的话,则也会清理发件箱和草稿箱。不过主要是清理垃圾邮件和垃圾箱,其他的目录是否清理,可以根据你自己的需求来处理。 垃圾邮件的时间很多都是提前几年,比如2012、2015年这类的问题怎么修改代码以解决? [quote]原帖由 [i]herong[/i] 于 2010-8-11 11:25 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=81404&ptid=15822][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
垃圾邮件的时间很多都是提前几年,比如2012、2015年这类的问题怎么修改代码以解决? [/quote]
这个关系不大。你在extmail里看到的邮件时间,是extmail解析邮件得到的,这个得到的时间,是通过stat文件得到,所以这些垃圾邮件仍然是可以删除的。 :victory: :victory: 真的强大?
测试下~~ good! thx! 顶你..........
页:
[1]
2