ExtMail服务器社区's Archiver

chifeng 发表于 2010-8-10 12:00

发布脚本:定期清理垃圾邮件、垃圾箱和收件箱的过期邮件

脚本名字: 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]

er_shi 发表于 2010-8-10 12:04

顶!!!!!!!!11

herong 发表于 2010-8-10 12:05

这个相当需要

测试一下

chris 发表于 2010-8-10 12:11

在清理之前,能看得到清理清单吗?

[[i] 本帖最后由 chris 于 2010-8-10 12:14 编辑 [/i]]

buyixiaozi 发表于 2010-8-10 12:18

[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]]

herong 发表于 2010-8-10 12:56

经测试,EMOS1.5.0 的垃圾邮箱不会清除。。。

herong 发表于 2010-8-10 12:57

清理清单你是看不懂的,一大串文字

tonny0830 发表于 2010-8-10 13:05

社区又要火了。:D :D :D :D :D :D :D :D

chifeng 发表于 2010-8-10 13:15

[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参数,会存入日志里,如果不用会打印到标准输出。
清理之前看不到。

chifeng 发表于 2010-8-10 13:15

[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只是一个示例而已。得改成你自己的域名。

chifeng 发表于 2010-8-10 13:16

[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试试??

chris 发表于 2010-8-10 13:30

[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参数,也只能在删除之后才能看到日志啊。

chris 发表于 2010-8-10 13:33

[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
我只想看到这一级目录列表。

linkesky 发表于 2010-8-10 14:04

不知道效果如何,架个虚拟机先试下看看。谢谢!

yinxi9512 发表于 2010-8-10 14:14

呵呵   好东西   得看看

chifeng 发表于 2010-8-10 14:21

[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参数就是显示用户和该用户要删除邮件路径,但是不做删除操作。请测试。

chifeng 发表于 2010-8-10 14:22

[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:

chris 发表于 2010-8-10 14:25

[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大哥。

chifeng 发表于 2010-8-10 14:49

[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

herong 发表于 2010-8-11 09:43

请问一下:
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");
}

chifeng 发表于 2010-8-11 10:10

[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

chifeng 发表于 2010-8-11 10:12

3,是的,如果你加上.Sent和.Drafts的话,则也会清理发件箱和草稿箱。不过主要是清理垃圾邮件和垃圾箱,其他的目录是否清理,可以根据你自己的需求来处理。

herong 发表于 2010-8-11 11:25

垃圾邮件的时间很多都是提前几年,比如2012、2015年这类的问题怎么修改代码以解决?

chifeng 发表于 2010-8-11 14:31

[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文件得到,所以这些垃圾邮件仍然是可以删除的。

herong 发表于 2010-8-11 17:07

:victory: :victory:

286540194 发表于 2011-1-10 09:57

真的强大?
测试下~~

blae 发表于 2011-1-24 00:40

good! thx!

源之缘 发表于 2011-2-14 10:58

顶你..........

页: [1] 2

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.