首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >archiveopteryx VS dbmail

archiveopteryx VS dbmail
EN

Stack Overflow用户
提问于 2011-11-01 18:35:01
回答 3查看 1K关注 0票数 2

我正在寻找一个数据库系统来存储我的电子邮件消息(现在超过400万),这将允许我通过编程轻松地搜索电子邮件,到目前为止,我只找到这两个,替代方案是拿出我自己的方案,并同步IMAP/Pop3文件夹作为电子邮件进来。然而,阅读:DBMAIL for search似乎是由于dbmail保存电子邮件的方式,搜索电子邮件是不太可能的。

我的主要目标是能够阅读电子邮件并搜索它们,比方说使用python。

EN

回答 3

Stack Overflow用户

发布于 2011-12-20 11:45:27

我正在寻找几乎完全相同的东西,存储和搜索一个巨大的语料库的电子邮件和附件,没有和明确的赢家。会很乐意和你交换意见。看起来archiveopteryx是dbmail,这两个具有成熟的db模式的领跑者在快速googling之后。这两个似乎都是围绕mta集成交付/pop/imap类型服务进行优化的套件,尽管我仍在研究这两种类型。

我也发现了这个http://www.flaterco.com/aemail/aedocs.html,但它似乎从2003年开始就没有维护过。

我似乎还不知道如何发送一个PM或与这个服务上的人联系。

票数 0
EN

Stack Overflow用户

发布于 2012-04-03 04:54:49

其他一些替代选择:

http://sqmail.sourceforge.net/是用Python语言编写的,但很长一段时间以来都不受支持。

http://www.manitou-mail.org/,它是用Perl编写的(我自己写的!)使用Qt/C++中的可选GUI。

票数 0
EN

Stack Overflow用户

发布于 2019-02-04 22:07:32

有点晚了,但您可以通过在数据库中创建视图然后进行搜索来轻松地进行搜索。

代码语言:javascript
复制
/* to, from and subject*/
create view as EmailHeaders
select 
`m`.`physmessage_id` AS `physmessage_id`,
`ph`.`internal_date` AS `internal_date`,
max(if(`n`.`headername` = 'from',`v`.`headervalue`,NULL)) AS `From`,
max(if(`n`.`headername` = 'to',`v`.`headervalue`,NULL)) AS `To`,
max(if(`n`.`headername` = 'subject',`v`.`headervalue`,NULL)) AS `Subject`
from 
(
    (
        (`dbmail_messages` `m` 
            join `dbmail_header` `h` on (`m`.`physmessage_id` = `h`.`physmessage_id`)
        ) 
        join `dbmail_physmessage` `ph` on(`m`.`physmessage_id` = `ph`.`id`)
    ) 
    join `dbmail_headername` `n` on(`h`.`headername_id` = `n`.`id`)
) 
join `dbmail_headervalue` `v` on(`h`.`headervalue_id` = `v`.`id`))
where 
`n`.`headername` = 'to' 
or `n`.`headername` = 'from' 
or `n`.`headername` = 'subject' 
group by `m`.`physmessage_id`

您也可以创建视图来显示消息,但是效率不高(消耗内存),但是您可以使用下面这样的方法

代码语言:javascript
复制
select  
    physmessage_id, 
    sum(prts.size) emailSize 
from dbmail_partlists list, dbmail_mimeparts prts, EmailHeaders eh
where list.part_id=prts.id 
   and list.is_header=0
   and eh.physmessage_id=list.physmessage_id
   and prts like '%your_word_here%'
group by list.physmessage_id 

对于小型服务器,这些查询就足够了,但对于大型服务器,您可能需要使用其他方法,但本质上就是这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7965220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档