Jump to content
Sign in to follow this  
Abarmot

POP3, SMTP (dovecot,sendmail) и организация почтовых ящиков

Recommended Posts

Господа, заранее прошу сильно не пинать. Помогите с таким тривиальным вопросом.

Имеется выделенный сервер под CentOS 5.2, на нем крутится шесть десятков доменов. Сейчас используется всего один ящик на все домены - такой себе catchall, кидающий всю входящую почту всех доменов на одного UNIX-юзера. Sendmail занимается доставкой, dovecot стоит в простейшей конфигурации для забирания почты того самого одного UNIX-юзера по POP3. Как вы понимаете, это все не очень удобно...

Поэтому захотелось создать отдельные ящики со своими POP3/SMTP логинами/паролями для каждого домена, чтобы можно было без проблем добавлять нужные ящики любому домену. Вэбмэйл не требуется, особо сложные почтовые комбайны ставить неохота, нужен лишь POP3 и SMTP доступ к созданным ящикам, ну можно еще IMAP.

Гуглил и искал по этому сайту - понятной для меня инфы не нашел. Во всех предлагаемых вариантах используется либо exim, либо postfix.

Так как я никогда ничего подобного еще не делал, я даже не знаю какой софт мне нужен. Некоторые настоятельно советовали сменить sendmail на что-то другое, однако делать этого не хочу, так как множество скриптов настроено и работают именно в этой конфигурации и не очень хочется что-то тревожить.

Посоветуйте наилучший вариант решения моего вопроса и, желательно, how-to инструкции (сорри за наглость) Smile

Share this post


Link to post
Share on other sites

AccessD писал(а) Sun, 01 February 2009 11:43

гуглите на предмет sendmail virtual domain

например http://www.opennet.ru/base/net/cyrus_sendmail_virt.txt.html

Это уже давно сделано... в /etc/mail/local-host-names прописаны хостящиеся домены, в /etc/mail/virtusertable все адреса форвардятся на одного и того же локального юзера (скажем, mailuser), sendmail принимает почту без проблем, но вот сваливает всё в один контейнер /var/spool/mail/mailuser

В данный момент с сервера я получаю почту юзера mailuser через POP3 (dovecot) - все письма всех доменов сыпятся на один почтовый ящик.

А как сделать чтобы почта приходила и сортировалась по ящикам? Чтобы у каждого отдельного ящика были логин и пароль для доступа по POP3 ?

Share this post


Link to post
Share on other sites

AccessD писал(а) Sun, 01 February 2009 13:16

во-первых, уберите форвард

во-вторых, читать http://wiki.dovecot.org/Authentication

спасибо, что показали где копать )) просто не мог понять принцип, по которому создаются виртуальные юзера и где хранится почта... в общем, всё сделал, скрестил sendmail и dovecot как LDA... для создавания/удаления юзеров скриптик на перле набросал - теперь делается всё в пару кликов... почта приходит, сортируется по ящикам... в общем, всё гуд...

вот вопрос еще - как сделать чтобы почта, идущая на локального юникс юзера (всякие logwatch и систмные письма) пересылалась на один из виртуальных ящиков? может, кто уже делал? просто лень снова маны курить по таким мелочам... Smile лень - двигатель прогресса Smile

хаха )) пока писал вопрос, нашел как это делается )) в файле /etc/aliases

вопрос снят )))

о! еще никак не могу найти как сделать общий catch-all ящик... к примеру, есть у меня несколько десятков доменов, заведены по пару ящиков каждому... а как сделать, чтобы почта, идущая на несуществующие ящики этих доменов не отстреливалась, а сыпалась в один общий ящик?

сейчас sendmail спрашивает у dovecot есть ли такой ящик, получает отрицательный ответ и отказывает в приеме сообщения User unknown.. как заставить dovecot говорить что ящик такой есть, но принимать эту почту в общий catch-all бокс ? http://dovecot.org исходил вдоль и поперек..

Share this post


Link to post
Share on other sites

а можно подробнее... как настроил ? у меня тоже проблема , не могу прикрутить dovecot к sendmail.

1. добавил в sendmail.mc строку MAILER(dovecot)dnl

2. создал /usr/share/sendmail/cf/mailer/dovecot.m4

######################*****##############

### DOVECOT Mailer specification ###

##################*****##################

Mdovecot, P=/usr/local/libexec/dovecot/deliver, F=DFMPhnu9,

S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,

T=DNS/RFC822/X-Unix,

A=deliver -d $u

3. конфиг dovecot

protocols = imap imaps pop3 pop3s

log_path = /var/log/dovecot.log

info_log_path = /var/log/dovecot-info.log

ssl_disable = yes

disable_plaintext_auth = no

mail_location = maildir:~/Maildir

pop3_uidl_format = %08Xu%08Xv

dotlock_use_excl=yes

maildir_copy_with_hardlinks=yes

auth_verbose = yes

auth default {

mechanisms = plain

passdb passwd-file {

args = /etc/dovecot/passwd

}

userdb static {

args = uid=vmail gid=vmail home=/home/vmail/%u

}

socket listen {

master {

path = /var/run/dovecot/auth-master

mode = 0600

user = vmail # User running deliver

}

}

}

protocol lda {

# remember to give proper permissions for these files as well

log_path = /var/log/dovecot-deliver.log

info_log_path = /var/log/dovecot-deliver.log

}

4. добавил в mailertable domain.com dovecot:dovecot

как я понимаю после этого довекот должен перехватить доставку почты для domain.com на себя и переносить всю почту для домена в директорию vmail ...

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

в local-host-names я прописал domain.com...

в maillog вижу строку gmbdirect sendmail[19125]: alias database /etc/aliases.db out of date

может что то в алиас нужно прописать?

Share this post


Link to post
Share on other sites

я так понял, что ты создал юзера vmail, сделал файл /etc/dovecot/passwd (если база у тебя в тексте) с записями для каждого юзера типа

test@domain.com:{PLAIN}testing123

добавил MAILER(dovecot)dnl в sendmail.mc и не забыл сделать ребилд (make -C /etc/mail)

и что с разрешениями на все файлы у тебя порядок

также, я так понял, что MX записи у тебя в порядке и почта исправно принималась до того как ты начал шаманить с dovecot-ом... верно?

я под CentOS 5.2 (а какая у тебя ось?) и сменил путь в созданном файле dovecot.m4 с /usr/local/libexec/dovecot/deliver на /usr/libexec/dovecot/deliver

sendmail будет передавать почту dovecot-у только если хост не в классе w... проверить можно так

echo '$={w}' | sendmail -bt

(если ты шаманил с настройками и прописал вирт хосты в /etc/mail/local-host-names то убирай их оттуда)

в /etc/mail/access для каждого виртуального хоста добавил

example.com RELAY

иначе sendmail будет боунсить почту этого домена (конечно, если у вас всё верно с безопасностью sendmail)

в /etc/mail/mailertable добавил строку

domain.com dovecot:dovecot

для каждого вирт хоста

(не забываем делать makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable после каждого изменения)

в /etc/aliases ничего писать ненадо... разве что выполните newaliases чтобы обновить хэш и та запись в maillog исчезнет

вот мой /etc/dovecot.conf (смотри атач)

как видишь, в основном всё по дефолту, лишь несколько изменений...

я сначала протормозил с путями... неправильно прописал mail_location

cat /etc/hosts | /usr/libexec/dovecot/deliver -d test@domain.com исправно

доставлял файл /etc/hosts в ящик test@domain.com а sendmail упорно отвечал что

такого ящика нет ))) я уже седеть начал... пол-дня искал почему же он с ошибкой

вываливается.. )))))))))

кстати, в секции protocol lda {} добавил пару строк для ведения логов LDA - видно что доставляется а что нет

и еще, хоть sendmail у меня и работает как рут, он почему-то не мог запустить deliver

пришлось сделать chmod u+s /usr/libexec/dovecot/deliver

отпишись о результатах шаманства Smile

Share this post


Link to post
Share on other sites

Abarmot писал(а) Thu, 05 February 2009 11:50

я так понял, что ты создал юзера vmail, сделал файл /etc/dovecot/passwd (если база у тебя в тексте) с записями для каждого юзера

...

Используйте меню "вложение файла". Весьма неприятно перелистывать в рсс-ридере стопицот страниц Ваших конфигов.

Share this post


Link to post
Share on other sites

посмотрел как у тебя настроенно, у меня все в принципе так же .

поменял только mail_location добавил поддержку access добавил в него строку с релаем (что счетаю не безопасным) убрал из local-host-names рекорд ... и кстати сделал newaliases ( помогло Wink надпись в логах исчезла)

попробовал после изменений отправить , письмо возвращается с сообщением Relaying denied. Proper authentication required.

у меня такое было... я поэтому и добавил в local-host-names...

хотя меня это удивляет - ведь в access я добавил рекорд ... непонятно ...

Share this post


Link to post
Share on other sites

EvilShadow писал(а) Thu, 05 February 2009 14:59

Используйте меню "вложение файла". Весьма неприятно перелистывать в рсс-ридере стопицот страниц Ваших конфигов.

а еще, наверное, нужно подумать о тех, кто читает форум на экране мобильников... да? Smile

ок Smile просто я думал оно сделает конфиг не таким большим окном, а со скроллбаром, как на остальных форумах...

uchtii писал(а) Thu, 05 February 2009 15:01

попробовал после изменений отправить , письмо возвращается с сообщением Relaying denied. Proper authentication required.

у меня такое было... я поэтому и добавил в local-host-names...

хотя меня это удивляет - ведь в access я добавил рекорд ... непонятно ...

а что в maillog ? тоже ничего нет?

если получаешь Relaying denied. Proper authentication required. то надо sendmail ковырять... вот у меня есть еще одна машина, только сегодня поставил туда с нуля CentOS 5.2 и такую же почтовую связку... вот конфиг sendmail-а (смотри атач)... как видишь, почти всё дефолтное... работает без проблем, проверено на open relay...

и смотри чтобы не добавил домен в класс w - тогда давкот точно его не примет...

ты так и не сказал что у тебя за ось?

Share this post


Link to post
Share on other sites

наконецто получилось... дело было в том что я access криво собрал ... сделал makemap hash снова ... после этого почта стала возвращаться с ошибкой user unknown ... посмотрел как у тебя настроен userdb в dovecot ( ты там писал полное имя вмесе с доменом, а я нет - только имя ) исправил рестартнул довекот и все получилось Smile

большое спасибо

теперь осталось прикрутить спамоборону от яндекса (ради неё все

затевалось)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...