archiveopteryx VS dbmail - PullRequest
       43

archiveopteryx VS dbmail

2 голосов
/ 01 ноября 2011

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

MyОсновная цель - уметь читать электронные письма и, например, искать их, используя python.

Ответы [ 3 ]

0 голосов
/ 03 апреля 2012

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

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

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

0 голосов
/ 04 февраля 2019

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

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

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

0 голосов
/ 20 декабря 2011

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

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

Кажется, я пока не могу понять, как отправить сообщение или связаться с людьми в этой службе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...