免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2472 | 回复: 8
打印 上一主题 下一主题

[Mail] postfix 中对邮件主题添加编号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-16 14:11 |只看该作者 |倒序浏览
希望在postfix中能够对发往某一个特殊地址的邮箱的主题进行改写
已知使用
  1. header_checks = pcre:/etc/postfix/header_checks.pcre
复制代码
可以根据条件进行replace
但是不知道如何修改header_checks 才能够满足自己的要求

需求:
对于发往地址为proj (类似proj-xxx-xxx@yyy.com)开头的的邮件进行判断,如果包含subject 包含 [NO.0000x] 就对数字进行加1,如果没有就自动添加[NO.00001]
简单来说就是对发往特定的邮箱的邮件自动进行主题排号

有无大神提点下

论坛徽章:
24
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2016-07-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
2 [报告]
发表于 2014-10-16 16:10 |只看该作者
1.如果发往特定邮箱的地址是你那台邮件服务器上的话可以用procmailrc结合脚本来实现
编辑特定用户 home目录下的.procmailrc
:0 fw  
| 脚本程序 (shell脚本或其他外部程序都可以,怎么筛选,怎么改邮件,楼主办法就多了吧)


2.如果你发的特定邮箱地址是其他公司的,那就得编辑procmailrc,全局生效即公司所有用户发出去的都会经过这个规则
:0 fw  
| 脚本程序
(当然这里就要注意了下,因为是全局针对所有用户,小心点了噢,把条件设定好只针对那个用户进行条件判断)


当然楼主非要坚持在MTA上实现,可以无视上面MDA实现方法。


论坛徽章:
0
3 [报告]
发表于 2014-10-16 16:12 |只看该作者
本帖最后由 woxizishen 于 2014-10-16 19:09 编辑

回复 2# woxizishen


    目标邮件用户是本主机上的,邮件服务器使用的是iredmail 搭建的,后台使用mysql ,没有发现你说的那个文件
    只要能实现就好,没有限定在哪个组件上实现



论坛徽章:
26
CU十二周年纪念徽章
日期:2013-10-24 15:41:34技术图书徽章
日期:2014-07-11 16:27:52辰龙
日期:2014-09-04 13:40:43白羊座
日期:2014-09-09 12:51:55双子座
日期:2014-09-26 11:00:042014年中国系统架构师大会
日期:2014-10-14 15:59:00子鼠
日期:2014-10-23 16:48:23巨蟹座
日期:2014-10-27 08:21:10申猴
日期:2014-12-08 10:16:282015年辞旧岁徽章
日期:2015-03-03 16:54:15NBA常规赛纪念章
日期:2015-05-04 22:32:03IT运维版块每日发帖之星
日期:2016-01-29 06:20:00
4 [报告]
发表于 2014-10-16 16:39 |只看该作者
http://www.postfix.org/header_checks.5.html

这里面应该有你要的答案,不过要化点时间看看。

论坛徽章:
24
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2016-07-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
5 [报告]
发表于 2014-10-16 19:10 |只看该作者
回复 3# helloiac


    我大概看了你这个iredmail,他其实就是将potfix(MTA)/dovecot(MRA)/amavisd-new(调用clamv和spa进行杀毒和过滤)/Webmail/openssl等等软体打包组合起来的,不需要用户了解很多就可以安装起来,但是我觉得你如果各个组件不去了解下,有问题的话,估计你自己解决问题会头疼的。


1.没有我说的那个文件的话。
首先查看你有没有安装这个MDA软体,没有就安装上。
rpm -qa | grep procmail
procmail-3.22-14

2.再看看postfix这个MTA服务器使用的第三方MDA是不是procmail,还是说他根本不使用第三方外部过滤程序
查看主配置文件main.cf里有没有这个项
mailbox_command = /usr/bin/procmail  
如果有这个选项,那就简单了,证明他postfix使用了procmail做MDA的,你可以自己在你的家目录下面的用户名称下建立一个这样的文件.procmailrc(规则写好后,保存就立即生效了)
按照上面我给你的规则你就可以自己写shell或phylon脚本,想怎样改变邮件主题就怎么改变了呗。不过procmail规则你可能需要花点时间了解。



3.看了iredmail说明,你这个postfix他不在自身做任何过滤的,是通过amavisd-new(也算是个迷你MTA)来进行病毒和邮件过滤的。你在postfix主配置文件main.cf可以看到这一行
content_filter = smtp-amavis:[xxx省略]。他这样做是对的,MTA功能不是用来去过滤邮件的,包括postfix很多权威专家都说过。
一般MTA过滤就2个结果,要么是直接拒絕接收垃圾郵件,要么接收垃圾郵件后是丟棄還是保留。在MTA上实现改邮件标题,还要这么智能+1的方法估计有点难 呵呵,不知道新版的postfix有没有加入你想要的这个功能,我了解的之前的postfix本身旧版似乎没有。

你还是从MDA上解决这个问题或者那个amavisd-new(迷你版的MTA)做标题修改,而这个amavisd-new软体我没深入研究过,所以无法帮你,影响当中他也是可以改邮件标题的。

论坛徽章:
0
6 [报告]
发表于 2014-10-17 13:06 |只看该作者
本帖最后由 helloiac 于 2014-10-17 13:06 编辑

回复 5# woxizishen


    首先感谢你仔细回答
    我查了一下iredmail 对于procmail的支持,目前官方是不支持这个组件了,而且有人反映自己加上procmail后,有些功能貌似会出现问题,所以暂时不考虑添加procmail 的方法
   
     http://www.irbs.net/internet/postfix/0711/0271.html 这个我找到的一篇,这个思路是否可行
     

论坛徽章:
24
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2016-07-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
7 [报告]
发表于 2014-10-17 14:02 |只看该作者
回复 6# helloiac


用maildrop这个外部过滤器也是可以实现修改邮件标题的,他和procmail一样都是MDA。procmail这个其实也没多大问题,主要是看你怎么用,网上说的那些评测大部分偏向maildrop的。
但是procmail是有一个先天性缺陷,在处理大量大的单封邮件时候可能会耗费过多内存资源,这一点确实没有maildrop好,更可怜的是procmail这个软体好多年都没有社区的人去更新了。而maildrop还在释出新版。你可以花时间去研究下maildrop。另外procmail的规则是比maildrop要难的,而且资料很少。按照未来前景看,maildrop有点取代procmail的趋势,值得你研究。




论坛徽章:
0
8 [报告]
发表于 2014-10-20 10:07 |只看该作者
回复 7# woxizishen


    我分析了一下自己的需求
    if  To proj-.* 邮件地址
          if   Subject  没有编号
               添加编号
          fi
          if   Subject  有编号
               删除编号
               读取编号记录文件
               添加编号  
          fi
    fi
    想要实现这种复杂的需求,感觉除了修改dovecot 的源文件没有什么其他方法了
   
    我有另一个想法,使用inotify 监控收件箱情况,有收到邮件就对邮件进行改写,虽然知道这是个烂方法,但是应该比修改源文件简单点吧

论坛徽章:
24
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2016-07-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
9 [报告]
发表于 2014-10-20 14:12 |只看该作者
回复 8# helloiac

为这个修改dovecot源码,那是真的有点杀鸡焉用牛刀,得不偿失。方法没有好烂,哪一个方法让你最快,最简单解决了问题,我个人认为就是好方法。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP