浏览 2002 次
锁定老帖子 主题:邮件分类是咋做的呢?
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-06
不知道有没有对cyrus比较熟悉的朋友。 我想实现这样一个邮件分类的功能(这个功能是服务器端的,不是客户端的)。 就是用户创建邮件目录,并设定送信人地址。 比如 INBOX.朋友 设定地址是:friend1@iteye.com,friend2@iteye.com,friend3@iteye.com 那么只要从这几个邮件发来的信件都需要存到 <INBOX.朋友>目录,而不是默认的<INBOX>目录。 由于这个设定可以让用户自己来操作,所以邮件目录和地址的绑定是放在数据库里的。 我查到了一个协议,叫sieve <RFC3028>,倒是支持分类功能,但是邮件地址都是写死在shellsieve里的,没有办法使用数据库。 不知道还有没有其它建议。 谢谢了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-06
cyrus是带有sieve的实现,你可以找到cyrus sieve的源代码,想办法实现一个匹配方法(类似:is、:contains、:matches、:regex)去和数据库打交道,比如说叫:jdbc,那么Sieve脚本就可以写成:
if envelope :jdbc "From" "owner@iteye.com" { fileinto "INBOX.朋友"; stop; } :jdbc匹配方法根据owner@iteye.com这个用户帐号去查询设定的地址列表,并判断发件人地址是否匹配。 如果你的邮件服务器使用apache james就好办多了,直接写一个mailet实现即可。 |
|
返回顶楼 | |
发表时间:2007-08-06
crofton 写道 cyrus是带有sieve的实现,你可以找到cyrus sieve的源代码,想办法实现一个匹配方法(类似:is、:contains、:matches、:regex)去和数据库打交道,比如说叫:jdbc,那么Sieve脚本就可以写成:
if envelope :jdbc "From" "owner@iteye.com" { fileinto "INBOX.朋友"; stop; } :jdbc匹配方法根据owner@iteye.com这个用户帐号去查询设定的地址列表,并判断发件人地址是否匹配。 如果你的邮件服务器使用apache james就好办多了,直接写一个mailet实现即可。 谢谢。 不知道网上有没有现成的provider或者module什么的,毕竟自己来实现存在隐患,我对这个也不熟,说实话就连配置cyrus还没有搞的太明白。 |
|
返回顶楼 | |
发表时间:2007-08-06
有没有搞错呀,这贴也隐藏?
|
|
返回顶楼 | |