免费注册 查看新帖 |

Chinaunix

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

[Mail] 立下计划,为sqwebmail写一个邮件内容查找的hack [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-27 19:50 |只看该作者 |倒序浏览
好象在sqwebmail中没有实现邮件内容的查找,所以现在要实现这样的一个功能。

1、第一阶段,估计2周左右,查看相关资料,为“邮件查找”如何实现做些准备
2、总结第一阶段工作,根据以上成果来评估是否继续下去。
3、花二周时间来编写代码,并测试通过

请多位高手、大侠们提供一些指点。
此外,请勿怀太高期望。
毕竟现在只能在工作之余来完成。
不过,一旦完成,邮件搜索部分即当以代码形式公之于众。--前提是写完了。:)

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-08-28 09:58 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

应该可以的。

可以参考读信部分的代码。

涉及到内容解码的部分

论坛徽章:
0
3 [报告]
发表于 2003-08-28 12:39 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

刚才有空看了一下rfc1521。决定自己来写解码的部分,不去看sqwebmail的部分了:原因是他的处理函数是为了将邮件显示而设计的,不大可能重用他的函数。
下面是我关于解码的一点小思路:
/**
*1、搜索相关目录得到文件名
*2、读入所有内容
*3、对From:与Subject:进行mime_word_decode解码
*4、找到字符串Content-Transfer-Encoding:
*5、然后读入后面的类别,只处理base64与quoted-printable两类
*6、对这两类内容进行解码。
*7、对处理后的结果进行搜索<先简单查找一个,只找一个词>;
*
*/
由于对邮件各方面知之甚少,不知以上思路是否可以解决所有问题。
在rfc1521,对于Content-Transfer-Encoding的说明如下:
/*
encoding := "Content-Transfer-Encoding" ":" mechanism

   mechanism :=     "7bit"  ;  case-insensitive
                  / "quoted-printable"
                  / "base64"
                  / "8bit"
                  / "binary"
                  / x-token
*/
7bit应该不需要进行处理。
8it应该同样不需要处理。
binary则应该略过
x-token应该不去理睬。
所以只需要处理base64与quoted-printable两类。
这就是我的理解,不知道是否正确,请大侠们斧正。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-08-28 22:09 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

sqwebmail的编解码、遍历mime的rfc例库都有了,没有必要重新开发的。

论坛徽章:
0
5 [报告]
发表于 2003-09-03 15:43 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

邮件搜索终于简单的做完了。
--其实几天前就搞定了,不是特别的满意。因为相对于其他许多商业的系统来说,实在过于简单。此外,对于一些特别的全外情况

都没有仔细考虑,不过,总得说来,毕竟可用了。
邮件搜索使用了一个外部类库:

http://prdownloads.sourceforge.net/libstrfunc/libstrfunc-7.4.7.tar.gz

其实大可以不使用这个库的,可实在是我对sqwebmail去了解的时间实在太少---仅仅在此之前,仅是将sqwebmail做了一个修改,

让其支持了多个用户签名。

说实在的话,这个libstrfunc类库的mime_word_decode函数有BUG。base64_decode解码有时也出问题,还好,在实验中,quoted_pr

intable_decode没有发现有问题---在我的程序中,于是便调用了这一个函数,这可实在是比较笨的解决方案了。

其他两类:如=?gb2312?= =AB==等等都调用的是sqwebmail中附带的函数。


总而言之,邮件搜索是可以跑起来了。
让我们接下去试试看。
一、首先请安装:
libstrfunc

安装很容易,
./configure --program-prefix=/usr
make
make install

二、新增了二个:html文件
           search.html与has_found.html
        请将其放到正确的位置
三、修改sqwebmail.c
在作如下修改:
        else if (strcmp(kw, "REFWEEK" == 0)

        {
                       
                pref_displayweekstart();
               
        }
               
       else if (strcmp(kw,"CS_SEARCH"==0)
   //这行是新增的
       {                       
              //这行是新增的       
        cs_do_search();
                      //这行是新增的
        }                                     //这行是新增的
四:将两个新文件:cs_func.c与cs_func.h复制到sqwebmail目录
五、修改sqwebmail/Makefile.am
   找到:sqwebmail_SOURCES=addressbook.c
        在其中增加 cs_func.h cs_func.c

六、在sqwebmail目录运行autoconf
七、再次运行confgiure(注意要带选项)
8、修改sqwebmail/Makefile
找到:LIBS= -lcrypt
修改成: LIBS= -lstrfunc -lcrypt

回到上级目录,执行make、编译即可。

最后:wmail/wm/?folder=INBOX&form=search
就应该就可以运行了。
BTW:我是修改了wmail.

-------------
此外,附件包中,还附带了自动回复的程序。

欢迎来信:erehw@163.com msn:erehw@163.com

result.gif (16.82 KB, 下载次数: 72)

邮件查找的结果

邮件查找的结果

search.gif (4.18 KB, 下载次数: 78)

邮件查找的页面的

邮件查找的页面的

论坛徽章:
0
6 [报告]
发表于 2003-09-03 15:46 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

不能附带zip文件,大家到这儿去下载吧:
如果不能下载的话,请第二天再来---公司的机器,有可能停电
     http://shanji.com/mailsearch.zip

此外,正在做pop收件,代码已经写完,正在测试中。

poplist.gif (10.18 KB, 下载次数: 67)

pop收件

pop收件

论坛徽章:
0
7 [报告]
发表于 2003-09-04 17:49 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

好兄弟,辛苦了!

论坛徽章:
0
8 [报告]
发表于 2003-09-04 18:24 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

[quote]原帖由 "sxqw"]好兄弟,辛苦了![/quote 发表:


辛苦 --支持。

希望继续尽快推出,到时候我们的webmail就有更完善的用了。呵呵

论坛徽章:
0
9 [报告]
发表于 2003-09-05 09:34 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

没时间了。。。。。。。。。。。。。。。
有一个比较大的开发项目上马了。
此外,发现还是花一些时间去解决那个smtp-auth认证,关于本域的问题。
现在,谁都可以使用我的webmaster@...发给我本域的用户。

有志于解决这个问题的兄弟们来讨论一下。
msn:erehw@msn.com

欢迎参观我的mail:
http://allsso.com
可以自由注册。。。
用户test,密码testtest

论坛徽章:
0
10 [报告]
发表于 2003-09-05 15:44 |只看该作者

立下计划,为sqwebmail写一个邮件内容查找的hack

qmail 中对本域用户的发信认证之前 gadfly 已经做了一个补丁了啊,我一直在用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP