Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Настройка почтовой системы(postfix+fetchmail+dovecot) как клиента(yandex..etc)  (Прочитано 46359 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Всем привет!

Настройка сервера - в спойлере, чтобы уже прочитавшим не листать мануал впустую.
(Нажмите, чтобы показать/скрыть)

Наболело:
(Нажмите, чтобы показать/скрыть)

Проблемы возникшие по ходу использования этой почтовой связки и их решения:

Невозможность принять/отправить письма больше 10 Мбайт.
(Нажмите, чтобы показать/скрыть)

Ошибка "relay access denied" - при отправке почты с почтового клиента(Thunderbird, TheBat и другие).
(Нажмите, чтобы показать/скрыть)

Если у Вас не уходит почта через gmail/rambler/mail/yandex из-за отсутствия сертификатов этих почтовых сервисов.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 15 Июля 2011, 10:46:27 от Brunen »

Оффлайн El Scorpio

  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Спасибо огромное за инструкцию.
Проблема "зеркала" почтового ящика действительно крайне серьёзная - особенно если "канонические" способы вроде создания своего почтового сервера невозможны ввиду отсутствия белого адреса.

Только хотелось бы побольше комментариев к файлу main.cf

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Спасибо огромное за инструкцию.
Проблема "зеркала" почтового ящика действительно крайне серьёзная - особенно если "канонические" способы вроде создания своего почтового сервера невозможны ввиду отсутствия белого адреса.

Только хотелось бы побольше комментариев к файлу main.cf

Скажите, какие конкретно параметры интересуют?

Оффлайн hate19

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Практически заработало, папка входящие уже синхронизируется, но новая почта не появляется, она просто удаляется с сервера... Вот лог, помойму вместо рута должен стоять дрeгой пользователь...

fetchmail: SMTP> EHLO polic-mail
fetchmail: SMTP< 250-ws1.srv
fetchmail: SMTP< 250-PIPELINING
fetchmail: SMTP< 250-SIZE
fetchmail: SMTP< 250-VRFY
fetchmail: SMTP< 250-ETRN
fetchmail: SMTP< 250-STARTTLS
fetchmail: SMTP< 250-ENHANCEDSTATUSCODES
fetchmail: SMTP< 250-8BITMIME
fetchmail: SMTP< 250 DSN
fetchmail: SMTP> MAIL FROM:<hate19@mail.ru> SIZE=1489
fetchmail: SMTP< 250 2.1.0 Ok
fetchmail: SMTP> RCPT TO:<root@localhost>
fetchmail: SMTP< 250 2.1.5 Ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 End data with <CR><LF>.<CR><LF>
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 Ok: queued as 17115206E8
fetchmail: очищено
fetchmail: POP3> DELE 1
fetchmail: POP3< +OK message 1 deleted
fetchmail: POP3> QUIT
fetchmail: POP3< +OK POP3 server at mail.ru signing off
fetchmail: SMTP> QUIT

Пользователь решил продолжить мысль 17 Мая 2011, 15:50:39:
Очень странно, исходя из лога расположенного выше, можно сделать вывод что почта бросается на рута, это если fetchmail запущен в режиме демона, но если в Webmin настроить schduled cheking, то почта получается нормально и появляется на клиентских компах. Оставил пока так, не знаю в чем причина. Теперь занялся отправкой. При попытке отправить письмо с клиентской программы получается "Сбой команды MAIL FROM: Bad sender address syntax" в логе dovecot запись "2011-05-17 15:48:35 dovecot: Warning: Killed with signal 15 (by pid=5123 uid=0 code=kill)"

Пользователь решил продолжить мысль 17 Мая 2011, 16:29:28:
RCPT TO <hate19@bk.ru> не удалось: <hate19@bk.ru>: Relay access denied - теперь вот что выдает при попытке отправить. дальше уж не знаю куда копать((

Пользователь решил продолжить мысль 18 Мая 2011, 11:48:32:
вот если через телнет пробую, то вот:

telnet polic-mail 25
Trying ::1...
Trying 127.0.1.1...
Connected to polic-mail.
Escape character is '^]'.
220 Sender (MTA)
helo 192.168.1.249
250 ws1.srv
mail from:hate19@mail.ru
250 2.1.0 Ok
rcpt to: hate19@mail.ru
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
dfdfsfsfs
dfsfsdfsf
.
250 2.0.0 Ok: queued as 38F9A212A8

вроде как все норм, но до ящика не доходит...
« Последнее редактирование: 18 Мая 2011, 11:48:32 от hate19 »

Оффлайн El Scorpio

  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Что за параметр smtp_sasl_security_options =.
При таком значении вместо отправки в лог mail.warn постоянно записывался следующее соообщение
(Нажмите, чтобы показать/скрыть)
В гугле нашёл значение smtp_sasl_security_options = noanonymous , исправил.

Теперь вроде бы работает. Правда возникает такая интересная ситуация: если при отправке почты происходит сбой, то MAILER DAEMON пытается отправить уведомление об ошибке на внешний почтовый адрес company@yandex.ru (ведь именно он указан в поле reply to).
И если ошибка отправки была вызвана проблемами доступа к smpt на yandex.ru, то уведомление об ошибке также никуда не уйдёт (будет болтаться в очереди на отправку, пока его не удалят вручную)
Можно ли сделать так, чтобы локальный сервер уведомления об ошибках отправлял сразу на локального пользователя "почтовый ящик"?

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Что за параметр smtp_sasl_security_options =.
При таком значении вместо отправки в лог mail.warn постоянно записывался следующее соообщение
(Нажмите, чтобы показать/скрыть)
В гугле нашёл значение smtp_sasl_security_options = noanonymous , исправил.
Да, извиняюсь, у меня ошибка была в этом мануале в виде лишней точки. На сервере её конечно же нет.


Пользователь решил продолжить мысль 19 Мая 2011, 11:25:22:
Теперь вроде бы работает. Правда возникает такая интересная ситуация: если при отправке почты происходит сбой, то MAILER DAEMON пытается отправить уведомление об ошибке на внешний почтовый адрес company@yandex.ru (ведь именно он указан в поле reply to).
И если ошибка отправки была вызвана проблемами доступа к smpt на yandex.ru, то уведомление об ошибке также никуда не уйдёт (будет болтаться в очереди на отправку, пока его не удалят вручную)
Можно ли сделать так, чтобы локальный сервер уведомления об ошибках отправлял сразу на локального пользователя "почтовый ящик"?

Здесь я не спец. Настраивал сам методом проб и ошибок. Представляю только, как  и что работает в этой связке на уровне пользователя.
У меня есть только предположение, что такая почта должна идти на root, который должен быть прописан в /etc/aliases:
postmaster:    root
Но как забирать с него почту - тут не в курсе. Познаний не хватает.

Пользователь решил продолжить мысль 19 Мая 2011, 11:31:50:

RCPT TO <hate19@bk.ru> не удалось: <hate19@bk.ru>: Relay access denied - теперь вот что выдает при попытке отправить. дальше уж не знаю куда копать((



Сам сталкивался с такой ерундой. Необходимо прописать свои сети в /etc/postfix/main.cf:
mynetworks = 127.0.0.0/8, 192.168.0.0/24
# Моя сеть - 192.168.0.0/24
Тогда с клиентов можно отправлять почту без всяких проблем. Ошибка исчезнет.



Пользователь решил продолжить мысль 19 Мая 2011, 11:48:35:
Очень странно, исходя из лога расположенного выше, можно сделать вывод что почта бросается на рута, это если fetchmail запущен в режиме демона, но если в Webmin настроить schduled cheking, то почта получается нормально и появляется на клиентских компах. Оставил пока так, не знаю в чем причина. Теперь занялся отправкой. При попытке отправить письмо с клиентской программы получается "Сбой команды MAIL FROM: Bad sender address syntax" в логе dovecot запись "2011-05-17 15:48:35 dovecot: Warning: Killed with signal 15 (by pid=5123 uid=0 code=kill)"
Я настраивал всё это дело через консоль. Вебмином не пользовался специально, чтобы более-менее понимать, КАК и ЧТО я делаю для ТОГО, чтобы в последствии ПОНИМАТЬ, как разобраться с возникшими проблемами, с которыми ещё не сталкивался.
Попробуйте на тестовом сервер или вирт. машине настроить полностью через консоль.

Каким почтовым клиентов пользуетесь?
Когда создаете ящик в том же Thunderbird - он автоматом определяет Ваш внутренний imap/smtp-сервер.
Когда жмёте "ОК" - создается ящик и папка "Входящие". Когда отправляете письмо - создается папка "Отправленные". У меня сбоев не было.

Покажите вывод след. файлов:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/sender_relay

И скриншот Thunderbird(если он клиент) в меню учётных записей, где указаны поля From-to, Reply-to, название созданного проблемного ящика. Постараемся разобраться.

« Последнее редактирование: 19 Мая 2011, 16:27:44 от Brunen »

Оффлайн Maximich

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Спасибо за мануал !
Очень помог, но остался один нерешенный вопрос.
Весь софт настраивал в удаленном офисе для уменьшения почтового трафика, в основном офисе Exchange 2010 (доступа у меня к нему нет), почта получается, клиенты работают. Но выявилась проблема с отправкой.
Если письмо отправляется на какой-нибудь mail.ru то все доходит, если на внутренний адрес, то сразу отвечает еще один Exchange (Как я понял не работает отправка через конкретный smtp сервер).
При установке relayhost, почта на внутренние адреса проходит, на внешние нет (надо настраивать Exchange, а это мне не доступно), обычные почтовые клиенты с Exchang'ом работают нормально.

Вопрос: как заставить postfix отправлять почту не на прямую, а через smtp Exchanga'а, желательно без настройки relayhost. Или c настройкой relayhost но с авторизацией.

Пользователь решил продолжить мысль 22 Мая 2011, 12:26:15:
Разобрался сам. Все заработало.
« Последнее редактирование: 22 Мая 2011, 12:26:15 от Maximich »

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Спасибо за мануал !
Очень помог, но остался один нерешенный вопрос.
Весь софт настраивал в удаленном офисе для уменьшения почтового трафика, в основном офисе Exchange 2010 (доступа у меня к нему нет), почта получается, клиенты работают. Но выявилась проблема с отправкой.
Если письмо отправляется на какой-нибудь mail.ru то все доходит, если на внутренний адрес, то сразу отвечает еще один Exchange (Как я понял не работает отправка через конкретный smtp сервер).
При установке relayhost, почта на внутренние адреса проходит, на внешние нет (надо настраивать Exchange, а это мне не доступно), обычные почтовые клиенты с Exchang'ом работают нормально.

Вопрос: как заставить postfix отправлять почту не на прямую, а через smtp Exchanga'а, желательно без настройки relayhost. Или c настройкой relayhost но с авторизацией.

Пользователь решил продолжить мысль 22 Мая 2011, 12:26:15:
Разобрался сам. Все заработало.

Напишите, как решили вопрос - может, кто-то ещё столкнётся с подобной ситуацией и решит её, благодаря Вашему ответу.

Оффлайн hate19

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля

RCPT TO <hate19@bk.ru> не удалось: <hate19@bk.ru>: Relay access denied - теперь вот что выдает при попытке отправить. дальше уж не знаю куда копать((



Сам сталкивался с такой ерундой. Необходимо прописать свои сети в /etc/postfix/main.cf:
mynetworks = 127.0.0.0/8, 192.168.0.0/24
# Моя сеть - 192.168.0.0/24
Тогда с клиентов можно отправлять почту без всяких проблем. Ошибка исчезнет.



Пользователь решил продолжить мысль 19 Мая 2011, 11:48:35:
Очень странно, исходя из лога расположенного выше, можно сделать вывод что почта бросается на рута, это если fetchmail запущен в режиме демона, но если в Webmin настроить schduled cheking, то почта получается нормально и появляется на клиентских компах. Оставил пока так, не знаю в чем причина. Теперь занялся отправкой. При попытке отправить письмо с клиентской программы получается "Сбой команды MAIL FROM: Bad sender address syntax" в логе dovecot запись "2011-05-17 15:48:35 dovecot: Warning: Killed with signal 15 (by pid=5123 uid=0 code=kill)"
Я настраивал всё это дело через консоль. Вебмином не пользовался специально, чтобы более-менее понимать, КАК и ЧТО я делаю для ТОГО, чтобы в последствии ПОНИМАТЬ, как разобраться с возникшими проблемами, с которыми ещё не сталкивался.
Попробуйте на тестовом сервер или вирт. машине настроить полностью через консоль.

Каким почтовым клиентов пользуетесь?
Когда создаете ящик в том же Thunderbird - он автоматом определяет Ваш внутренний imap/smtp-сервер.
Когда жмёте "ОК" - создается ящик и папка "Входящие". Когда отправляете письмо - создается папка "Отправленные". У меня сбоев не было.

Покажите вывод след. файлов:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/sender_relay

И скриншот Thunderbird(если он клиент) в меню учётных записей, где указаны поля From-to, Reply-to, название созданного проблемного ящика. Постараемся разобраться.


[/quote]
Все работает. Действительно, дело было в правильном указании своей сети.

Оффлайн Maximich

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Добрый день. Ветки плодить не буду, отпишусь здесь.

Задача была приблизительно такая-же как и ТС, с некоторыми замечаниями.

Есть несколько офисов связанных по ipsec. В одном из офисов стоит Exchange 2010 к которому доступа нет, соответственно внести какие-либо коррективы в настройки нереально. Есть удаленный офис, которому на первом этапе нужна простая вещь: забирать почту одного пользователя с Exchang'a и давать возможность пользоваться этой почтой нескольким менеджерам. Раньше стоял на одной из виндовых машин OMS и с грехом пополам справлялся с данной задачей. Но после серии неожиданных глюков, было принято решение заменить его на что-то большее. Лезть в варезники не хотелось, да и от винды хотелось уйти, поэтому на одну из машин была поставлена Ubuntu 10.04 desktop и пошла настройка почты.

1. Fetchmail категорически отказался забирать почту с Exchang'a. Пошерстив по просторам интернета были найдены опции которых не хватало для нормальной авторизации fetchmail'a на Exchange
set daemon 300
set no syslog
set logfile /var/log/fetchmail.log
set postmaster pp
set no bouncemail

poll SERVERNAME proto pop3 auth ntlm user "username" pass "userpass" is "localuser" here sslproto ssl23;

где SERVERNAME имя Exchange сервера. Данное имя прописал в hosts, т.к. надоело что в логах появлялось SERVERNAME!=192.168.xxx.xxx

2. В sasl_passwd немного поменял синтаксис и продублировал строку (наименования серверов поставил в квадратные скобки)
[192.168.xxx.xxx] username:userpass
[SERVERNAME] username:userpass

3. main.cf

smtpd_banner =Sender (MTA)
biff = no

append_dot_mydomain = no

readme_directory = no


smtp_tls_CApath = /usr/share/ca-certificates/mozilla
smtp_tls_CAfile =  /etc/postfix/cacert.pem
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = POSTFIXSERVERNAME
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = POSTFIXSERVERNAME, localhost.localdomain, localhost
mynetworks = 192.168.yyy.0/24, 127.0.0.0/8, 192.168.xxx.0/24, 192.168.zzz.0/24

message_size_limit = 0
virtual_mailbox_limit = 0
mailbox_size_limit = 0

mailbox_command = procmail -a "$EXTENSION" DEFAULT=$HOME/Maildir/
MAILDIR=$HOME/Maildir

recipient_delimiter = +
inet_interfaces = all

relayhost = [192.168.xxx.xxx]
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sender_dependent_authentification = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtp_generic_maps = hash:/etc/postfix/generic
smtpd_enforce_tls = no
smtp_tls_security_level=may

Вот с этой конфигурацией все работает как надо. Релеем выступает Exchange сервер, авторизация на нем проходит. Конфиг можно почистить, убрав лишнее, но пока все работает, лучше не трогать  :coolsmiley:

Оффлайн El Scorpio

  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
relayhost = [192.168.xxx.xxx]
......
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
Можно было релейхост не шифровать: всё равно это - серый IP :)

Как я понимаю, оба этих параметра одновременно указывать не имеет смысла.
При использовании одного сервера достаточно прописать его адрес в Relayhost. Если же есть несколько ящиков на разных серверах, то они перечисляются в файле sender_dependent_relayhost_maps

Однако хочется уточнить следующий вопрос
Если создано несколько ящиков на одном почтовом сайте, то как их перечислить в параметре smtp_sasl_password_maps?
Ведь тогда в соответствующем файле будет присутствовать несколько строк с одинаковым ключом:
smtp.yandex.ru:25 MyMailBox1@yandex.ru:MyPassword1
smtp.yandex.ru:25 MyMailBox2@yandex.ru:MyPassword2

В частности, postmap при обработке такого файла напишет "postmap: warning: sender_passwords.db: duplicate entry: "smtp.yandex.ru:25"
Можно ли так?

Оффлайн Maximich

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
пока не прописал relayhost postfix упорно отправлял письма напрямую получателям.

И есть вопрос, могут ли конечные почтовые сервера очищать информацию о маршруте письма ? У меня пока письмо получателю дойдет пройдет еще 4 промежуточных внутренних, по ним можно ведь узнать всю структуру сети  :)

Оффлайн El Scorpio

  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
пока не прописал relayhost postfix упорно отправлял письма напрямую получателям.

relayhost - это "маршрут пересылки по-умолчанию"
Если без него пересылка не работала, значит Postfix не может найти соответствующий маршрут пересылки через sender_dependent_relayhost_maps (возможно, в файле указан неправильный адрес почты либо подстановка адреса неправильно выполняется)

P.S.
Почтовый сервер в интернете раскладывает входящую почту по отдельным папкам (уведомления с разных форумов и т.д.). Всвязи с чем ещё два вопроса:
Как настроить fetchmail, чтобы он по IMAP загружал почту не только из папки "входящие"?
Как настроить procmail, чтобы он распихивал загруженную почту по нужным папкам локального сервера?

Оффлайн Brunen

  • Автор темы
  • Участник
  • *
  • Сообщений: 143
    • Просмотр профиля
Однако хочется уточнить следующий вопрос
Если создано несколько ящиков на одном почтовом сайте, то как их перечислить в параметре smtp_sasl_password_maps?
Ведь тогда в соответствующем файле будет присутствовать несколько строк с одинаковым ключом:
smtp.yandex.ru:25 MyMailBox1@yandex.ru:MyPassword1
smtp.yandex.ru:25 MyMailBox2@yandex.ru:MyPassword2

В частности, postmap при обработке такого файла напишет "postmap: warning: sender_passwords.db: duplicate entry: "smtp.yandex.ru:25"
Можно ли так?

Интересная задачка, сам с таким ещё не сталкивался.
Основательно погуглив зарубежные форумы на эту тему - ответа не нашёл.
Сам методом тыка написал на сервере так:
smtp.yandex.ru:25 MyMailBox1@yandex.ru:MyPassword1 MyMailBox2@yandex.ru:MyPassword2и сделал postmap /etc/postfix/sender_passwords. Ошибок никаких не выдавал. Попробуйте, может сработает.
ИЛИ
возникла ещё мысль:
узнать у яндекса альтернативный smtp-порт(кроме 25ого) и написать так:
smtp.yandex.ru:25 MyMailBox1@yandex.ru:MyPassword1
smtp.yandex.ru:2525 MyMailBox2@yandex.ru:MyPassword2
тогда жалоб насчёт дубликатов при "postmap /etc/postfix/sender_passwords" не наблюдается. Попробуйте первый/второй вариант - должно сработать.



Пользователь решил продолжить мысль 26 Мая 2011, 06:10:50:
P.S.
Почтовый сервер в интернете раскладывает входящую почту по отдельным папкам (уведомления с разных форумов и т.д.). Всвязи с чем ещё два вопроса:
Как настроить fetchmail, чтобы он по IMAP загружал почту не только из папки "входящие"?
Как настроить procmail, чтобы он распихивал загруженную почту по нужным папкам локального сервера?
Сам с  imap не связывался в плане работы с публичными почтовиками(mail.ru, gmail.com, etc...), могу статью посоветовать, где этот вопрос раскрывается.

Пользователь решил продолжить мысль 26 Мая 2011, 06:31:16:
И есть вопрос, могут ли конечные почтовые сервера очищать информацию о маршруте письма ? У меня пока письмо получателю дойдет пройдет еще 4 промежуточных внутренних, по ним можно ведь узнать всю структуру сети  :)
Сам не сталкивался, гугл молчит на тему эту. Так что пока вопрос не разрешённый. Если будет не лень - можете создать на postfix.ru тему в форуме - обычно оперативно отвечают.
« Последнее редактирование: 26 Мая 2011, 06:31:16 от Brunen »

Оффлайн Arash922

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Ув. Brunen
настраиваю почтовый сервер по вашему руководству под ОС Ubuntu 10.04 server
на сервере в логах все нормально, а вот когда создаю учетку на клиенте в thunderbird все сервера находит но при попытке нажать на кнопку "создать учетную запись" выдает: невозможно создать т.к. неверное имя пользователя или пароль. я на 100% уверен что вписываю их правильно

подскажите как решить мою проблему

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.