邮件服务器-邮件系统-邮件技术论坛(BBS)'s Archiver

海洋科技www.idcsea.com,海外邮件解决方案提供商!

GOOGOO 发表于 2007-8-11 23:08

MDaemon主管签审工具

最近开始学习MDaemon,发现他的功能真丰富,一般企业的需求都能满足了,而且也很简单。但是最近看到有同学问到MDaemon上是否有主管签审的功能,这个好像还没有。既然有人需要,那就研究一下吧。

签审是什么啊?
签审就是某个发送一个外部的邮件的时候,需要通过一个指定的“主管”看一下,然后由这个主管决定是否可以发送这
个邮件。

MDaemon中如何来实现这个过程呢?
我发现MDaemon中有一个功能在处理远程队列的前可以调用一个外部程序。我想这个是一个机会让我来操作这个邮件。但是这个调用需要阻塞主进程了,万一我的程序没写好,那不是要影响主进程了,这个责任太大了,不好不好。
后来发现MDaemon中有一个叫过滤器的东东,看了一下,那可是一个宝啊,好像可以实现很多自定义的操作。粗粗一看,有门。

过滤器如何来模拟签审过程?
过滤器可以分析当发送人是xxx的时候做一些指定的动作。然后移动到一个公共文件夹。设置这个文件夹的访问权限,让主管可以看这个文件夹,这样一来,签审过程就实现了啊。

将思路理清楚后,就开始验证是否可以实现签审的过程。在后面的贴中,会将我实践的过程记录下来。作为一个MDaemon新手,我就把这个过程当作学习MDaemon的过程,解决问题是提高的捷径,请各位大侠请多多支持。:lol

[b][color=red]备注:
下载地址为:
[/color][/b][url=http://www.5dmail.net/bbs/attachments/month_0710/md_signer.rar][b][color=red]http://www.5dmail.net/bbs/attachments/month_0710/md_signer.rar[/color][/b][/url]

asionliang 发表于 2007-8-12 09:42

:handshake 期待

lwz_08 发表于 2007-8-12 12:25

关注

U-Mail 发表于 2007-8-12 14:28

研究出来奖励正版序列号一个

Hokings 发表于 2007-8-12 17:28

非常期待!这是我急需实现的一个功能,先谢了!

GOOGOO 发表于 2007-8-13 08:19

谢谢大家的支持,我尽力完成这个功能

[b]规则应该怎么写呢?[/b]
Apply this rule to messages in the REMOTE queue
If the FROM HEADER contains [email=]'kyk@toucantech.cn'[/email] or [email=]'sale1@toucantech.cn'[/email] or [email=]'sale2@toucantech.cn'[/email]
...then copy this message to "[email=GOOGOO@toucantech.cn]GOOGOO@toucantech.cn[/email]"
   and delete this message
1.应用这个规则于远程队列,一般公司就对发送倒外部的邮件进行签审,所以用REMOTE queue就可以了
2.判断邮件信头中的FROM段,从这里可以获得发送人的身份,如果需要对多个用户进行签审可以用or连接一个一个写下去
3.复制邮件给这个主管[email=GOOGOO@toucantech.cn]GOOGOO@toucantech.cn[/email]
4.删除这个邮件.从流程上看,这个邮件应该在主管这里了,所以远程队列中的邮件就不需要了,要不这个邮件又会发走的.我象找一个move的功能,没有找到,只有用3+4来实现move的功能了.
测试了一下,[email]sales1@toucantech.cn[/email]发送的邮件都到了[email=googoo@toucantech.cn]googoo@toucantech.cn[/email]的信箱中了.而且的信件中的内容没有做任何的改动.第一步实现了.

[b]主管怎么看呢?[/b]
大家做好思想准备啊,这个过程有点长啊.
1.使用一个邮件客户端把这个邮件接收下来,注意这个邮件客户端要有再次发送的功能,我用了FOXMail
2.这个客户端收到后,主管看一下后,把这个邮件(来自[email=sale1@toucantech.cn]sale1@toucantech.cn[/email],发送到 外部用户 ),如果可以再次发送一下,外部用户看到还是从[email=sale1@toucantech.cn]sale1@toucantech.cn[/email]发送过来的邮件,如果不可以就直接回复给[email=sale1@toucantech.cn]sale1@toucantech.cn[/email]
测试了一下,发现了一个问题,邮件"审核"后不能发送到外部去,又回到了主管这里了,原来这个"审核"后的邮件和原来的邮件一样的,写好的规则没有办法识别审核过和未审核过的标志。

GOOGOO 发表于 2007-8-13 08:35

[b]怎么加审核标志呢?
[/b]
考虑到内容过滤器可以分析信件中所有的内容,所以必须在信头或者信信体中添加一些标志,表示审核过了.

最简单的是再次发送的时候在出题中加入一个约定的标志比如[以签审],然后在内容过滤器的规则中添加一条
and If the SUBJECT HEADER does not contains '[已审核]'

注意
1. 是does not contains,表示如果发现[已审核]就不要再签审了,
2. 使用and连接
这样测试了一下,审核后的邮件终于可以正常发送了:lol

整个签审的环节是跑通了.但是过程太复杂了,估计头头脑脑会用的火冒三丈,是否可以简单一点的实现这个功能呢?

[[i] 本帖最后由 GOOGOO 于 2007-8-13 08:39 编辑 [/i]]

GOOGOO 发表于 2007-8-13 08:45

[b]复杂环节分析[/b]

1.审核的设置太复杂
2.主管审核的过程太复杂
因为这些功能都是"非标准的",所以我找不到现成的工具来优化这些实现方法。其实自己写一个,不对,是两个工具也不会话很多时间。
一个是审核规则编辑器
一个是主管审核工具

说干就干,就写两个工具吧。:lol

vt-ok 发表于 2007-8-13 10:03

学习中,关注。

yijiande 发表于 2007-8-13 10:31

关注中,能实现最好。

kks168 发表于 2007-8-13 12:43

學習ing!

asionliang 发表于 2007-8-13 14:55

MD 版太需要这类技术文章了!! :loveliness:

Hokings 发表于 2007-8-13 20:47

如果员工在信件头私自加上“已审核”,那不是就拦不住此邮件了吗?

GOOGOO 发表于 2007-8-13 22:21

[quote]原帖由 [i]Hokings[/i] 于 2007-8-13 20:47 发表 [url=http://bbs.5dmail.net/redirect.php?goto=findpost&pid=209307&ptid=168982][img]http://bbs.5dmail.net/images/common/back.gif[/img][/url]
如果员工在信件头私自加上“已审核”,那不是就拦不住此邮件了吗? [/quote]
是的,签审本来就是企业办公流程的一个环节,而且这个环节依靠的更多的是行政命令,如果员工要干点私货,可以使用自己的私人信箱,反正有各种办法的。

现在的签审的意义我认为主要是体现在业务把关上了,就是主管本身对业务过程很熟悉,而组员不熟悉业务,比如报价啊,业务跟进啊,主管可以帮助一下组员。我认为可以看成是一种变相的工作流。

为了审核而审核的公司越来越少了,毕竟效率低了很多。:lol

GOOGOO 发表于 2007-8-13 22:47

[b]审核规则编辑器设计[/b]

目的是将审核的规则设置简单化,配置B,C,D发送的邮件需要A主管签审。
原来还担心内容过滤器的配置是写数据库的或者MDaemon自己的格式,这样就麻烦大了。还好发现内容过滤器的配置是写在叫cfrules.dat的文件中app目录下,别看是dat,其实就是一个ini格式。这样就简单多了,再表扬一下,MDaemon真好。:victory:
这个格式很简单的,基本上自然语言描述的。随便修改了一下,然后启动MDaemon的内容过滤器,发现他也认可了我修改的内容,应该就没有其他问题了。

[b]使用什么工具开发呢?[/b]
C#开发效率高一点,但是发布的时候要拖一个.net包。这么小的程序,有点不合适。最好是复制过去就好用的。还是用C++吧。就一个INI文件的操作,一个主管列表,一个员工列表。:lol

wxhsh 发表于 2007-8-14 08:47

回复 #15 GOOGOO 的帖子

感觉还是有点麻烦,为什么不用一个邮件网关呢,客户端发信全部到网关邮服里,然后在网关里进行审核,不过这可能需要两台服务器了。

GOOGOO 发表于 2007-8-15 07:58

[quote]原帖由 [i]wxhsh[/i] 于 2007-8-14 08:47 发表 [url=http://bbs.5dmail.net/redirect.php?goto=findpost&pid=209333&ptid=168982][img]http://bbs.5dmail.net/images/common/back.gif[/img][/url]
感觉还是有点麻烦,为什么不用一个邮件网关呢,客户端发信全部到网关邮服里,然后在网关里进行审核,不过这可能需要两台服务器了。 [/quote]

为了审核多添加一个邮件网关,有点划不来啊.还有一般的邮件网关都有收发的功能,这样就把MDaemon绕过去了:lol

GOOGOO 发表于 2007-10-26 10:28

历经千辛万苦,千山万水(出了个小差:lol ),终于把这个东东做好了。
开发工具vs2005 vc++

由两个程序组成,cfgsign.exe 负责设置签审,比如那个主管签那个员工的,本来可以使用过滤器,那里设置太复杂了,还是搞个界面来的方便一点,请看图,

添加用户的按钮,是读取MDaemon中的用户,让大家可以选选,设置完成后,保存一下,就生效力。==,MDaemon好像要重新启动一下,然后再生效:

GOOGOO 发表于 2007-10-26 10:28

领导用用的工具其实就是一个邮件客户端,他负责负责登陆到信箱中,然后把信接收下来后,看看,同意就发送,不同意就退回,还可以写一些退回的理由,

[[i] 本帖最后由 GOOGOO 于 2007-10-26 10:31 编辑 [/i]]

GOOGOO 发表于 2007-10-26 10:32

这样就实现了签审的过程了。
程序压缩好了一共 993kb,可以我就能上传128kb的内容,:'( 有啥办法啊?

暂时需要的同学,给我留言,要不短消息给我邮件地址,我给你们发过来吧。:)

有啥问题,尽管体,称现在还热火着,改改也方便:lol

[[i] 本帖最后由 GOOGOO 于 2007-10-26 10:40 编辑 [/i]]

页: [1] 2 3

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.