免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 11396 | 回复: 21

[Mail] [原创]■    MailDrop 基础应用指南    ■ [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
发表于 2004-02-01 23:51 |显示全部楼层
最近对邮件系统感兴趣,同时垃圾邮件、病毒邮件日益增多,反垃圾和病毒使邮件系统管理者的当务之急。
    procmail研究了一下子,不知道为什么,过滤规则可以执行,但是我的信件本来要拦截的,却照发了;没办法,继续研究MailDrop,这几天小有成果,虽然还不是融会贯通,但至少能够按照我的要求来拦截垃圾邮件啦。
    不过不知道有没有同好,如果有同好,给些意见,给些鼓励,给些经验。
    我自己仔细研读了maildrop的英文资料,看看原版资料,真是受益匪浅,所以想在这里和大家共享一下子。
    明天要上班啦,所以一下子不能完成,这个星期就慢慢来写哦。
    不发没有人看的东西,所以也有人支持我就发,没任何支持那就算啦。


大家支持,我基本完成啦,不过还只能算是手稿,已经可以对域过滤啦,对单用户过滤啦!!!
如果大家有好的建议想法经验心得体会笔记,如果愿意被我
剽窃到这里来,可以提出哦


近期相关疑问:

注意=Vpopmail(<5.3.7+)的MailDrop域过滤的问题和解决方案


MailDrop 域过滤规则和单用户过滤规则对照




MailDrop基本运用

1、前提条件:
我的参照系统:FreeBSD+Qmail(Vpopmail)+MailDrop

2、如何设置:
(1)、域过滤
  (a)、构想:
  1. 应用过滤规则
  2.      被过滤信件发送到spam
  3.      其他用户信件照常分发
  4.            不存在的用户则返回信息
复制代码

  (b)、配置:
file:/path/to/vpopmail/domains/HOST/.qmail-default
  1. | preline  /usr/local/bin/maildrop ./.filter
复制代码

file:/path/to/vpopmail/domains/HOST/.filter

  1. import EXT
  2. import HOST
  3. VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
  4. VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
  5. logfile "/var/log/mail/maildrop/$HOST"
  6. if (/过滤规则/)
  7.      {
  8.           to "/home/vpopmail/domains/$HOST/spam/Maildir/."
  9.           exit
  10.      }

  11. #to "$VPOP" #低于5.3.7+版本的Vpopmail的多管道存在问题,所以用以下变通方法

  12. `test -d $VHOME/Maildir/`
  13. if( $RETURNCODE != 1 )
  14. {
  15.         to "$VHOME/Maildir/."
  16.         exit
  17. }
  18. else
  19. {
  20.         echo "Sorry , no this user"
  21.         EXITCODE=77
  22.         exit
  23. }
复制代码

         
(1)、单用户过滤
  (a)、构想:
  1. 应用过滤规则
  2.      被过滤信件发送到spam
  3.      其他信件照常分发
复制代码

  (b)、配置:
file:/path/to/vpopmail/domains/HOST/EXT/.qmail
  1. | preline  /usr/local/bin/maildrop ./.filter
复制代码

file:/path/to/vpopmail/domains/HOST/EXT/.filter

  1. import EXT
  2. import HOST
  3. VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
  4. logfile "/var/log/mail/maildrop/$HOST"

  5. if (/过滤规则/)
  6.      {
  7.           to "/home/vpopmail/domains/$HOST/spam/Maildir/."
  8.           exit
  9.      }

  10. to "$VHOME/Maildir/."
复制代码


3、MailDrop的一些语句
  1. ` ... `
  2. 执行外部程序,返回码为RETURNCODE,通常1表示不成功,其他表示成功执行

  3. cc
  4. 转发信件

  5. logfile
  6. MailDrop日志文件

  7. log
  8. 记录信息

  9. to
  10. 分发信件

  11. echo
  12. 返回信息

  13. xfilter
  14. 执行外部过滤程序

  15. exit
  16. 退出过滤

  17. import
  18. 输入环境变量
复制代码

4、控制语句
(1)基本控制语句:
  1. if (表达式) #表达式格式:(表达式1) [ || (表达式2) ((表达式3)&&(表达式4)) ]
  2. {
  3. ...语句...
  4. }
  5. else
  6. {
  7. ...语句...
  8. }
复制代码

(2)、操作符:

  1. ||
  2. &&
  3. <  <=  >;  >;=  ==  !=  数值比较
  4. lt  le  gt  ge  eq  ne 文本比较
  5. |
  6. &
  7. +  - *  /
  8. =~ /pattern/
  9. /pattern/  !  ~  function()
复制代码


5、常用函数
  1. getaddr(string)
  2. 从字符串提取邮件地址
  3. hasaddr(string)
  4. 在信件之中查找邮件地址
  5. length(string)
  6. 字符串长度
  7. substr(string,start [,count])
  8. 从字符串去除部分字符
  9. time
  10. 返回当前时间
  11. tolower(string)
  12. 转换为小写
  13. toupper(string)
  14. 转换为大写
复制代码


6、MailDrop的一些变量
  1. EXITCODE
  2. 退出码,返回给qmail的处理程序
  3. LINES
  4. 当前信件的行数
  5. MAILDIRQUOTA
  6. 用户的Quota
  7. RETURNCODE
  8. 返回码,执行外部程序的返回码
  9. SIZE
  10. 信件的大小
复制代码


7、过滤规则:
  1. 语法:/pattern/
复制代码
  1. x*
  2. 匹配任意个x

  3. (abc)*
  4. 匹配任意个abc

  5. x+
  6. 匹配至少一个x

  7. (abc)+
  8. 匹配至少一个abc

  9. x?
  10. 匹配至多一个x

  11. .
  12. 匹配换行符以外的

  13. (abc)?
  14. 匹配至多一个abc

  15. abc!def
  16. !用于匹配模式分开的节

  17. [abc]
  18. 字符列表匹配,匹配a或者b或者c

  19. [^abc]
  20. 非型匹配

  21. \x
  22. 匹配转义字符

  23. \nnn
  24. 匹配八进制字符

  25. [:alnum:]
  26. 任何字母和数字

  27. [:alpha:]
  28. 任何字母

  29. [:cntrl:]
  30. 任何控制字符

  31. [:digit:]
  32. 任何数字

  33. [:graph:]
  34. 任何非空字符

  35. [:lower:]
  36. 任何小写字母

  37. [:print:]
  38. 任何可打印字符

  39. [:punct:]
  40. 任何标点符号

  41. [:space:]
  42. 任何空白字符

  43. [:upper:]
  44. 大写字母

  45. [:wbreak:]
  46. 任何字母、数字、下划线之外的字符


  47. [:xdigit:]
  48. 任何16进制数
复制代码

  1. 要匹配特殊字符,需要在特殊字符前面添加一个反斜线。例如,\?匹配问号。匹配反斜线,使用\\。
  2. 放置^在表达式前表示匹配一行开始的部分。放置$在表达式后表示匹配一行的结尾。
  3. 在表达式的其它地方,$标记用作变量替换。要匹配$字符,需要在前面添加反斜线
复制代码

特殊字符
  1. \n
  2. 换行符

  3. \r
  4. 回车符

  5. \t
  6. 制表符

  7. \f
  8. 换页符

  9. \v
  10. 垂直制表符号
复制代码


8、相关连接:
注意=Vpopmail(<5.3.7+)的MailDrop域过滤的问题和解决方案


MailDrop 域过滤规则和单用户过滤规则对照



maildrop的一些基本用法


用maildrop实现域过滤规则


maildrop于subject使用base64编码
此方法可用于过滤中文

9、感谢
严重感谢所有软件的开发者
严重感谢相关文档和资料的提出者
严重感谢以上提到的资料中的相关人员
严重感谢一切支持的人们
特别感谢hzqbbc 、gadfly、artxing等的热情帮助

10、附加:
如果你懂得了Unix Shell或者Perl或者C等等,你懂得了正则表达式的运用,那么你也可以写出更好的应用来得。是懂得了而不是懂得
因为我的主要工作不是在邮件系统方面,所以算不上深刻体会,有一些东西也是生搬硬套而来的,还不能融会贯通触类旁通举一反三,所以如果大家有好的想法和意见,好的经验和心得体会,同样可以告诉大家,不,不管什么意见都可以告诉大家。

论坛徽章:
0
发表于 2004-02-02 00:04 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

支持,支持

论坛徽章:
0
发表于 2004-02-02 09:39 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

UP

论坛徽章:
0
发表于 2004-02-02 10:33 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

关注哦
楼主加油!!!

论坛徽章:
0
发表于 2004-02-02 12:30 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

支持我现在就在受垃圾的折磨

论坛徽章:
0
发表于 2004-02-02 15:52 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

up

论坛徽章:
0
发表于 2004-02-02 23:38 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

原帖由 "HonestQiao" 发表:
最近对邮件系统感兴趣,同时垃圾邮件、病毒邮件日益增多,反垃圾和病毒使邮件系统管理者的当务之急。
    procmail研究了一下子,不知道为什么,过滤规则可以执行,但是我的信件本来要拦截的,却照发了;没办法,继?.........


看maildrop邮件列表吧。

论坛徽章:
0
发表于 2004-02-03 08:56 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

支持喔。

论坛徽章:
0
发表于 2004-02-03 09:19 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

hehe

论坛徽章:
0
发表于 2004-02-07 16:17 |显示全部楼层

[原创]■    MailDrop 基础应用指南    ■

支持!想看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP