почта

Landstreicher

Как правильно на ваш взгляд должна ходить почта (в UNIX-системе):
1) держаться на сервере или храниться в /home/user ?
2) mbox или maildir ?
3) кто должен применять фильтры: почтовая программа при получении или сервер (или procmail?) при доставке?
4) sendmail или qmail или postfix или exim или .... ?
Хотелось бы по каждому пункту узнать все плюсы и минусы возможных решений.

abrek

1) держаться на сервере или храниться в /home/user ?
это разве не одно и то же?

Landstreicher

Я думал сервер держит почту где-нибудь у себя в /var

sergey_m

> 1) держаться на сервере или храниться в /home/user ?
Если человек работает из разных мест, то удобнее IMAP, который хранит на сервере. Если человек читает мало почты, не подписан на списки рассылки и сидит на диалапе, то удобнее POP. Если работаешь все время за своей машиной, то удобнее хранить в $HOME.
> 2) mbox или maildir ?
mbox проще и понятнее. maildir намного производительнее. Хранение в SQL сосет. Заморачиваться на maildir имеет смысл тогда, когда это большой нагруженный почтовый сервер.
> 3) кто должен применять фильтры: почтовая программа при получении или сервер (или procmail?) при доставке?
И то и другое. MTA должен резать письма, но только если это 100 % спам или вирус, то есть по таким признакам, которые на дают false positives. А юзер же на свой страх и риск может поставить себе еще более жесткие фильтры.
> 4) sendmail или qmail или postfix или exim или .... ?
Однозначно не qmail, бо извращение это. Из оставшихся трех
юзай то, что больше нравится, или по чему сможешь получить консультацию.
btw, могу дать по sendmail. Но это вовсе не значит, что я считаю что он лучше.

abrek

> maildir намного производительнее
часто встречающаяся операция - получение заголовков всех писем в ящике, чтобы показать пользователю индекс
прочитать по очереди 10000 и более файликов - на порядки дольше, чем один файл в 100Мбайт

sergey_m

Ну все на так плохо. В maildirах нормальных почтовых систем
есть индексы заголовков.
Зато если ты удалишь одно письмо из 100 Мб ящика, перезаписываться он будет очень долго.

abrek

Нормальные - это CGP?
Или есть ещё?

sergey_m

cyrus, courier
интересно было бы знать, что стоит на mail.ru

abrek

> cyrus
в моём какие-то индексы вроде есть, но не помогают
mutt читает оглавление где-то 10мессаг/сек при холодном кеше

sergey_m

mutt через IMAP?
Думаю тормоза не от maildir, а от того что клиент вытягивает
каждое сообщение по отдельности. Если была такая server-side команда, то все было бы быстрее. Думаю, если бы на IMAP сервере был mbox, то тормоза были бы не меньшии.
Согласись - вытащить хедеры кучи писем это весьма странный запрос.

abrek

Про 10 сообщ/сек я погорячился, реально ближе к 100, но всё равно очень плохо.
> Думаю, если бы на IMAP сервере был mbox, то тормоза были бы не меньшии.
Если сервер при этом догадался бы извлечь все заголовки за один проход, то гораздо меньшие
> Согласись - вытащить хедеры кучи писем это весьма странный запрос.
Что в нём странного? Как ещё построить оглавление?

sergey_m

На самом деле в твоем случае проблема стоит именно в том,
что нет server-side команды которая это сделает одним махом. Клиенту приходится тащить каждое письмо.
Так что узкое место здесь не maildir.

rfgbnfy

"Однозначно не qmail, бо извращение это."
why?

rfgbnfy

"Или есть ещё? " на нашей есть ещё...........

abrek

> Так что узкое место здесь не maildir.
Именно maildir, точнее диск, где оно лежит. При горячем кеше (повторный вход в тот же фолдер) читается минимум на порядок быстрее

sergey_m

Недостатков у него куча, но я все наизусть не знаю.
Что бы проиллюстрировать всю гениальность этого продукта, достаточно сказать что он иcпользует только одну MX запись из DNS, ту у которой наибольший приоритет. Если этот сервер не доступен, то письмо будет лежать в спуле до посинения и на другие MX не пойдет.
Заметьте, это не баг, это фича.

sergey_m

Мб это даже не файловый кэш. а кэш imapd?

abrek

> что он иcпользует только одну MX запись из DNS,
это сильное преувеличение
http://www-dt.e-technik.uni-dortmund.de/~ma/qmail-bugs.html п 3.2

abrek

> кэш imapd?
нет

abrek

> что нет server-side команды которая это сделает одним махом.
кстати может и есть
точно не помню, спецификацию читал давно, но общее впечатление такое, что там есть всё

sergey_m

Не преувеличение, а неточность. Правильнее было сказать: "если первый MX посылает его, то на более низкие он не лезет".
Вот:
qmail would never try any other MX than the first it connects to, even if that MX does not reply with a 220 greeting. When the server replies with e. g. a 554 greeting, qmail disconnects and later retries the same server again, ignoring the fact that 554 is a permanent error.

TYU_2008

на mail.ru используется полностью самостоятельный продукт, в котором есть индексы.

Chupa

>> cyrus
> в моём какие-то индексы вроде есть, но не помогают
> mutt читает оглавление где-то 10мессаг/сек при холодном кеше
у cyrus точно maildir?
глядя на поведение imapd при скачивании мыла, я в этом уже начал сомневаться

abrek

Это эффект от ext3 наверное

abrek

-rw------- 1 cyrus mail 822892 Feb 28 13:42 cyrus.index.NEW
-rw------- 1 cyrus mail 822944 Feb 28 13:42 cyrus.index
-rw------- 1 cyrus mail 15450968 Feb 28 13:42 cyrus.cache.NEW
-rw------- 1 cyrus mail 15451672 Feb 28 13:42 cyrus.cache
Оно cyrus.cache переписывает сначала, а потом делает fsync
Похоже, по разу для каждого сообщения
Какие команды твоя скачивалка посылает?

Chupa



fetchmail: IMAP> A0011 FETCH 1 BODY.PEEK[TEXT]
fetchmail: IMAP< * 1 FETCH (BODY[TEXT] {2247}
(2247 body octets) *************************.******************************.****
fetchmail: IMAP< )
fetchmail: IMAP< A0011 OK Completed
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 ok 1046429317 qp 11703
flushed
fetchmail: IMAP> A0012 STORE 1 +FLAGS (\Seen \Deleted)
fetchmail: IMAP< * 1 FETCH (FLAGS (\Deleted \Seen
fetchmail: IMAP< A0012 OK Completed

Chupa

придётся сделать 2 итерации:
fetchmail -a -k
fetchmail -F
вместо fetchmail -a

abrek

Значит, cyrus сосёт, только и всего
Оставить комментарий
Имя или ник:
Комментарий: