免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: leo4364088
打印 上一主题 下一主题

[Mail] 分享:小弟maildrop过滤心得,另有问题请教各位大大! [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
11 [报告]
发表于 2007-06-05 11:01 |只看该作者
原帖由 leo4364088 于 2007-6-5 10:34 发表
现在有个问题,就是执行/home/vpopmail/domains/goldtelecom.cn/.mailfilter脚本的时候,只能执行到 include $VHOME/.mailfilter , 也就是说 , 并没有执行 if ( $SIZE < 262144 ) 后的操作。
我想可能是脚本 ...

照一般語言的邏輯,那一定是 include 的 file 有問題, 把它單獨拉出來跑看看

论坛徽章:
0
12 [报告]
发表于 2007-06-05 11:10 |只看该作者
“變數”???不好意思,小弟没能理解,能否讲解一二,万分感谢!

[ 本帖最后由 leo4364088 于 2007-6-5 11:17 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
13 [报告]
发表于 2007-06-05 11:23 |只看该作者
原帖由 leo4364088 于 2007-6-5 11:10 发表
“變數”???不好意思,小弟没能理解,能否讲解一二,万分感谢!

首先,您必需了解,我個人並不懂 maildrop, 我只懂 procmail
變數(大陸好像都講變量吧)就像您前面提到的:
NSUB=`/usr/sbin/maildecode $SUBJECT`

如果您用這個東西來還原 base64 encoding , 那同理,白名單,黑名單都可以從 ` ` 而來
再把這個變量帶進去 if 中, 並適當的使用 : D  (大小寫視為相同)
ex:
if (/^From: ($WHITE_LIST)/: Dh)   (: 後是連在一起的, h 表示只看 header)
如此您只要維誰 $WHITE_LIST 的來源,這個來源就看您用什麼方式產生
我是用 mysql , 簡單一點可以用 file , 但您的例子是寫死在程式中

我只大概看了 maildrop manpage , 但過去我曾花一週的時間專研 procmail
看起來道理都是相同的,只是語法上的差異而以

论坛徽章:
0
14 [报告]
发表于 2007-06-05 11:29 |只看该作者
明白了,谢谢abel老大,小弟受益非浅!

论坛徽章:
0
15 [报告]
发表于 2007-06-05 15:37 |只看该作者
试了一下,确实是被 include 的 file 有问题,如下。

# more /home/vpopmail/domains/goldtelecom.cn/liutao/.mailfilter

#黑名单部分,发信人来信直接删除
if(/^From:.*bad@abc.net/)
{
to "/dev/null"
}
if(/^From:.*bad@test.com/)
{
to "/dev/null"
}
#白名单部分,发信人来信转移到收件箱
if(/^From:.*good@abc.net/)
{
to "$VHOME/Maildir/."
}
if(/^From:.*good@test.com/)
{
to "$VHOME/Maildir/."
}
##自定义部分,如果主题含有应聘字眼,转移到收件箱
if(/^Subject:.*/)
{
SUBJECT=$MATCH
}
if($SUBJECT ne "")
{
NSUB=`/usr/sbin/maildecode $SUBJECT`
}
if($NSUB=~/.*应聘*/ )
{
to "$VHOME/Maildir/."
}

问题应该出在“自定义部分”,我若将该部分内容完全删除,则一切正常。

[ 本帖最后由 leo4364088 于 2007-6-7 09:31 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
16 [报告]
发表于 2007-06-05 16:24 |只看该作者
這問題有賴您自己去找原因了
我個人並不曉得為什麼,因為我對 maildrop 並無任何研究
或許變量的 Scope 是個問題也不一定

论坛徽章:
0
17 [报告]
发表于 2007-06-05 16:55 |只看该作者
好的,谢谢abel老大!小弟我正在努力,一定要把问题解决!
再次表示感谢!

论坛徽章:
0
18 [报告]
发表于 2007-06-06 12:03 |只看该作者
白名单或黑名单用

  1.         if ( /^From:\s*(.*)/ && lookup( $MATCH, "./.whitefile" ))
  2.         {
  3.          }
复制代码

为最好
关键字用SA来做检查

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
19 [报告]
发表于 2007-06-06 21:04 |只看该作者
请教一下这个情况:

如果邮件来源包括test.com:
if(/^From:.*test.com*/ || /^From:.*test.com*/ || /^From:.*TEST.COM*/)

这个是说包含域名,因为域名是有假冒的,我再加一个IP
即域来自test.com,同时IP也来自128.3.0.0/16,两个条件同时符合时就直接送到收件箱.

这个IP的条件试过好多个都没有试出来.还有同时成立,如果是在local.cf里倒是好写!!

[ 本帖最后由 枫影谁用了 于 2007-6-6 22:39 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2007-06-07 09:30 |只看该作者
判断IP和域名相符,偶只知道在local.cf中能实现,至于在mailfilter中偶还不知怎样实现

[ 本帖最后由 leo4364088 于 2007-6-7 09:32 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP