archiveopteryx VS dbmail

Мне нужна система баз данных для хранения моих сообщений электронной почты (сейчас их более 4 миллионов), которая позволила бы мне легко осуществлять программный поиск по электронной почте, пока я нашел только эти два, и альтернативой является создание моей собственной схемы и синхронизация IMAP/ Папки Pop3 в качестве электронных писем поступают. Однако, читая это: DBMAIL для поиска кажется из-за того, как dbmail хранит электронные письма, поиск по электронным письмам не очень возможен.

Моя главная цель - уметь читать электронные письма и искать их, скажем, с помощью Python.

2 ответа

Некоторые другие альтернативные варианты:

http://sqmail.sourceforge.net/ написан на Python, но долгое время не поддерживается.

http://www.manitou-mail.org/ который написан на Perl (мной!) с необязательным графическим интерфейсом в Qt/C++.

Немного поздно, но вы можете легко выполнить поиск, создав представления в своей базе данных, а затем выполнить поиск.

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

Для небольших серверов этих запросов достаточно, но для больших вам может потребоваться использовать другие методы, но по сути это так.

Я ищу что-то почти то же самое, хранение и поиск по огромному корпусу электронных писем и вложений без явных победителей. Хотел бы сравнить заметки. Похоже, что archiveopteryx - это dbmail, два первых участника со зрелыми схемами БД после быстрого поиска в Google. Похоже, что оба пакета оптимизированы для служб доставки MTA / Pop / Imap, хотя я все еще исследую оба.

Я также нашел это http://www.flaterco.com/aemail/aedocs.html но, похоже, не поддерживается с 2003 года.

Я не могу понять, как отправить PM или связаться с людьми на этом сервисе.

Другие вопросы по тегам