我正在寻找一个数据库系统来存储我的电子邮件消息(现在超过400万),这将允许我通过编程轻松地搜索电子邮件,到目前为止,我只找到这两个,替代方案是拿出我自己的方案,并同步IMAP/Pop3文件夹作为电子邮件进来。然而,阅读:DBMAIL for search似乎是由于dbmail保存电子邮件的方式,搜索电子邮件是不太可能的。
我的主要目标是能够阅读电子邮件并搜索它们,比方说使用python。
发布于 2011-12-20 11:45:27
我正在寻找几乎完全相同的东西,存储和搜索一个巨大的语料库的电子邮件和附件,没有和明确的赢家。会很乐意和你交换意见。看起来archiveopteryx是dbmail,这两个具有成熟的db模式的领跑者在快速googling之后。这两个似乎都是围绕mta集成交付/pop/imap类型服务进行优化的套件,尽管我仍在研究这两种类型。
我也发现了这个http://www.flaterco.com/aemail/aedocs.html,但它似乎从2003年开始就没有维护过。
我似乎还不知道如何发送一个PM或与这个服务上的人联系。
发布于 2012-04-03 04:54:49
其他一些替代选择:
http://sqmail.sourceforge.net/是用Python语言编写的,但很长一段时间以来都不受支持。
http://www.manitou-mail.org/,它是用Perl编写的(我自己写的!)使用Qt/C++中的可选GUI。
发布于 2019-02-04 22:07:32
有点晚了,但您可以通过在数据库中创建视图然后进行搜索来轻松地进行搜索。
/* 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`您也可以创建视图来显示消息,但是效率不高(消耗内存),但是您可以使用下面这样的方法
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 对于小型服务器,这些查询就足够了,但对于大型服务器,您可能需要使用其他方法,但本质上就是这样。
https://stackoverflow.com/questions/7965220
复制相似问题