论坛首页 海阔天空论坛

邮件分类是咋做的呢?

浏览 2002 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-06  
这儿人气比较高,把问题放在这儿吧。

不知道有没有对cyrus比较熟悉的朋友。
我想实现这样一个邮件分类的功能(这个功能是服务器端的,不是客户端的)。

就是用户创建邮件目录,并设定送信人地址。
比如

INBOX.朋友

设定地址是:friend1@iteye.com,friend2@iteye.com,friend3@iteye.com
那么只要从这几个邮件发来的信件都需要存到 <INBOX.朋友>目录,而不是默认的<INBOX>目录。

由于这个设定可以让用户自己来操作,所以邮件目录和地址的绑定是放在数据库里的。

我查到了一个协议,叫sieve <RFC3028>,倒是支持分类功能,但是邮件地址都是写死在shellsieve里的,没有办法使用数据库。

不知道还有没有其它建议。

谢谢了。
   发表时间: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实现即可。
0 请登录后投票
   发表时间: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还没有搞的太明白。
0 请登录后投票
   发表时间:2007-08-06  
有没有搞错呀,这贴也隐藏?
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics