3

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

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

4

3 回答 3

0

我正在寻找几乎完全相同的东西,存储和搜索大量电子邮件和附件,没有明确的赢家。很想比较笔记。似乎archiveopteryx 是dbmail,在快速搜索后,这两个具有成熟数据库模式的领先者。两者似乎都是围绕 mta 集成交付/pop/imap 类型服务优化的套件,尽管我仍在调查两者。

我还发现了这个 http://www.flaterco.com/aemail/aedocs.html 但它似乎自 2003 年左右以来就没有维护过。

我似乎无法弄清楚如何发送 PM 或与此服务上的人联系。

于 2011-12-20T03:45:26.920 回答
0

其他一些替代选择:

http://sqmail.sourceforge.net/是用 Python 编写的,但长期以来不受支持。

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

于 2012-04-02T20:54:49.067 回答
0

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

/* 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 

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

于 2019-02-04T14:07:31.600 回答