Перейти к содержанию

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


Рекомендуемые сообщения

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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 ?

Ссылка на комментарий
Поделиться на другие сайты

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 исходил вдоль и поперек..

Ссылка на комментарий
Поделиться на другие сайты

а можно подробнее... как настроил ? у меня тоже проблема , не могу прикрутить 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

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

Ссылка на комментарий
Поделиться на другие сайты

я так понял, что ты создал юзера 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

Ссылка на комментарий
Поделиться на другие сайты

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

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

...

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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 - тогда давкот точно его не примет...

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

затевалось)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...