为了适应用户的使用,本站重新规划;由于时间上的关系,决定采用现成的CMS系统Joomla,同时根据我们的用户群体特点选用了常用的Joomla插件并进行优化。历时1个月的工作,今日正式上线。
大家支持,我基本完成啦,不过还只能算是手稿,已经可以对域过滤啦,对单用户过滤啦!!! 如果大家有好的建议想法经验心得体会笔记,如果愿意被我“剽窃”到这里来,可以提出哦 近期相关疑问: 注意=Vpopmail(<5.3.7+)的MailDrop域过滤的问题和解决方案 MailDrop 域过滤规则和单用户过滤规则对照 MailDrop基本运用 1、前提条件: 我的参照系统:FreeBSD+Qmail(Vpopmail)+MailDrop 2、如何设置: (1)、域过滤 (a)、构想:代码: 应用过滤规则 被过滤信件发送到spam 其他用户信件照常分发 不存在的用户则返回信息 (b)、配置: file:/path/to/vpopmail/domains/HOST/.qmail-default 代码: | preline /usr/local/bin/maildrop ./.filter file:/path/to/vpopmail/domains/HOST/.filter 代码: import EXT import HOST VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox" VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST` logfile "/var/log/mail/maildrop/$HOST" if (/过滤规则/) { to "/home/vpopmail/domains/$HOST/spam/Maildir/." exit } #to "$VPOP" #低于5.3.7+版本的Vpopmail的多管道存在问题,所以用以下变通方法 `test -d $VHOME/Maildir/` if( $RETURNCODE != 1 ) { to "$VHOME/Maildir/." exit } else { echo "Sorry , no this user" EXITCODE=77 exit } (1)、单用户过滤 (a)、构想:代码: 应用过滤规则 被过滤信件发送到spam 其他信件照常分发 (b)、配置: file:/path/to/vpopmail/domains/HOST/EXT/.qmail 代码: | preline /usr/local/bin/maildrop ./.filter file:/path/to/vpopmail/domains/HOST/EXT/.filter 代码: import EXT import HOST VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST` logfile "/var/log/mail/maildrop/$HOST" if (/过滤规则/) { to "/home/vpopmail/domains/$HOST/spam/Maildir/." exit } to "$VHOME/Maildir/." 3、MailDrop的一些语句 代码: ` ... ` 执行外部程序,返回码为RETURNCODE,通常1表示不成功,其他表示成功执行 cc 转发信件 logfile MailDrop日志文件 log 记录信息 to 分发信件 echo 返回信息 xfilter 执行外部过滤程序 exit 退出过滤 import 输入环境变量 4、控制语句 (1)基本控制语句: 代码: if (表达式) #表达式格式:(表达式1) [ || (表达式2) ((表达式3)&&(表达式4)) ] { ...语句... } else { ...语句... } (2)、操作符: 代码: || && < <= > >= == != 数值比较 lt le gt ge eq ne 文本比较 | & + - * / =~ /pattern/ /pattern/ ! ~ function() 5、常用函数 代码: getaddr(string) 从字符串提取邮件地址 hasaddr(string) 在信件之中查找邮件地址 length(string) 字符串长度 substr(string,start [,count]) 从字符串去除部分字符 time 返回当前时间 tolower(string) 转换为小写 toupper(string) 转换为大写 6、MailDrop的一些变量 代码: EXITCODE 退出码,返回给qmail的处理程序 LINES 当前信件的行数 MAILDIRQUOTA 用户的Quota RETURNCODE 返回码,执行外部程序的返回码 SIZE 信件的大小 7、过滤规则: 代码: 语法:/pattern/ 代码: x* 匹配任意个x (abc)* 匹配任意个abc x+ 匹配至少一个x (abc)+ 匹配至少一个abc x? 匹配至多一个x . 匹配换行符以外的 (abc)? 匹配至多一个abc abc!def !用于匹配模式分开的节 [abc] 字符列表匹配,匹配a或者b或者c [^abc] 非型匹配 x 匹配转义字符 nn 匹配八进制字符 [:alnum:] 任何字母和数字 [:alpha:] 任何字母 [:cntrl:] 任何控制字符 [:digit:] 任何数字 [:graph:] 任何非空字符 [:lower:] 任何小写字母 [:print:] 任何可打印字符 [:punct:] 任何标点符号 [:space:] 任何空白字符 [:upper:] 大写字母 [:wbreak:] 任何字母、数字、下划线之外的字符 [:xdigit:] 任何16进制数 代码: 要匹配特殊字符,需要在特殊字符前面添加一个反斜线。例如,?匹配问号。匹配反斜线,使用\。 放置^在表达式前表示匹配一行开始的部分。放置$在表达式后表示匹配一行的结尾。 在表达式的其它地方,$标记用作变量替换。要匹配$字符,需要在前面添加反斜线 特殊字符 代码: 换行符 回车符 制表符 f 换页符 v 垂直制表符号
8、相关连接: 注意=Vpopmail(<5.3.7+)的MailDrop域过滤的问题和解决方案 MailDrop 域过滤规则和单用户过滤规则对照 maildrop的一些基本用法 用maildrop实现域过滤规则 maildrop于subject使用base64编码 此方法可用于过滤中文 9、感谢: 严重感谢所有软件的开发者 严重感谢相关文档和资料的提出者 严重感谢以上提到的资料中的相关人员 严重感谢一切支持的人们 特别感谢hzqbbc 、gadfly、artxing等的热情帮助 10、附加: 如果你懂得了Unix Shell或者Perl或者C等等,你懂得了正则表达式的运用,那么你也可以写出更好的应用来得。是懂得了而不是懂得 因为我的主要工作不是在邮件系统方面,所以算不上深刻体会,有一些东西也是生搬硬套而来的,还不能融会贯通触类旁通举一反三,所以如果大家有好的想法和意见,好的经验和心得体会,同样可以告诉大家,不,不管什么意见都可以告诉大家。