Серверная почта на основе Postfix, Dovecot и MySQL для Debian

Postfix — очень мощный почтовый сервер, основанный на идеологии Open Source, его часто называют Postfix MTA — Postfix Mail Transfer Agent. В этом руководстве, собранном из разных истоников и дополненных личными переживаниями, я расскажу как установить Postfix в связке с Dovecot (IMAP/POP3) и MySQL на сервер Apache под управлением OC Debian. Руководство было опробовано на Debian 9 Stretch, Debian 8 Jessie, Debian 6 Squeeze и Debian 5 Lenny.

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

Базовая настройка системы

Предполагается, что в файле /etc/hosts уже есть запись для нашего сервера, в этом примере и ниже по тексту будет использована следующая запись:

127.0.0.1 localhost.localdomain localhost
12.34.56.78 mysrv.example.com mysrv

В файле /etc/hostname должно содержаться сокращённое название сервера, в днном случае mysrv:

echo "mysrv" > /etc/hostname
hostname -F /etc/hostname

Перед установкой пакетов следует обновить сведения и систему:

aptitude update && aptitude safe-upgrade

Установка нужных пакетов

Выполним следующую команду для установки Postfix, Dovecot, OpenSSL и MySQL:

aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server dovecot-common
 dovecot-mysql dovecot-imapd dovecot-pop3d postfix-tls libsasl2-2 libsasl2-modules
 libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet

В процессе установки появится несколько диалогов первоначальной настройки пакетов, вот основные шаги:

  • Во время установки сервера MySQL, если он не был установлен ранее, потребуется ввести пароль для пользователя root. Пароль следует выбрать надёжный;
  • Тип используемого Postfix сервера, — в одноимённом диалоге, — «Internet Site»;
  • В диалоге настройки Postfix следует определиться с почтовым именем. Имеется ввиду полное доменное имя сервера, в нашем примере это mysrv.example.com, его ещё называют FQDN (Fully Qualified Domain Name).

Так же нам понадобится отличный инструмент mailx, с его помощью мы будем отсылать тестовые письма непосредственно из консоли:

aptitude install mailx

или, если недоступен первый вариант прораммы:

aptitude install bsd-mailx

Итак мы установили все необходимые пакеты и готовы перейти к детальной настройке конфигурации.

Настройка MySQL базы данных доменных имён и пользователей

Для начала подключимся к MySQL серверу прямо из командной строки, нужно будет ввести пароль пользователя root, указанный при установке:

mysql -u root -p

После этого должно появиться приглашение к вводу команд MySQL, вроде этого:

mysql>

Создадим базу данных для Postfix и выберем её для дальнейшего использования:

CREATE DATABASE mail;
USE mail;

Подобные команда может быть выполнена и через интерфейс phpMyAdmin, но это менее безопасно во всех случаях.

Создадим пользователя с говорящим именем «mail_admin», он у нас будет главный по почте, поэтому наделим его всему привилегиями на всех локальных доменах. ВАЖНО! Сейчас и ниже «mail_admin_password» следует заменить на пароль для этого пользователя, в первой строке он задаётся впервые:

GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost'
 IDENTIFIED BY 'mail_admin_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain'
 IDENTIFIED BY 'mail_admin_password';
FLUSH PRIVILEGES;

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

CREATE TABLE domains ( domain varchar(50) NOT NULL, PRIMARY KEY (domain) );

Создадим таблицу пересылки почты с ящика на ящик:

CREATE TABLE forwardings ( source varchar(80) NOT NULL, destination TEXT NOT NULL,
 PRIMARY KEY (source) );

Создадим таблицу для хранения почтовых аккаунтов:

CREATE TABLE users ( email varchar(80) NOT NULL, password varchar(20) NOT NULL,
 PRIMARY KEY (email) );

И наконец создадим таблицу транспортировки:

CREATE TABLE transport ( domain varchar(128) NOT NULL default '',
 transport varchar(128) NOT NULL default '', UNIQUE KEY domain (domain) );

Работа с MySQL на данном этапе завершена, выходим обратно в консоль:

quit

Проверим, что MySQL связана с localhost (127.0.0.1). Для этого откроем файл /etc/mysql/my.cnf и найдём следующую строку:

bind-address = 127.0.0.1

Если MySQL на сервере уже настроен на другой IP адрес, следует это учесть в поледующих шагах настройки Postfix. Не рекомендуется запускать MySQL сервер на публичном IP адресе — это небезопасно.

Чтобы внесённые нами изменения корректно вступили в силу — перезапустим MySQL сервер:

/etc/init.d/mysql restart

На следующем этапе мы настроим Postfix на работу с MySQL.

Настройка Postfix на работу с MySQL

Для каждой таблицы в MySQL нам следует создать файл соответствия для Postfix.

Создадим файл для работы с почтовыми доменами Postfix:

touch /etc/postfix/mysql-virtual_domains.cf

В созданный файл /etc/postfix/mysql-virtual_domains.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain = '%s'
hosts = 127.0.0.1

Создадим похожий файл для настройки пересылки почты с ящика на ящик:

touch /etc/postfix/mysql-virtual_forwardings.cf

В созданный файл /etc/postfix/mysql-virtual_forwardings.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT destination FROM forwardings WHERE source = '%s'
hosts = 127.0.0.1

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

touch /etc/postfix/mysql-virtual_mailboxes.cf

В созданный файл /etc/postfix/mysql-virtual_mailboxes.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT CONCAT( SUBSTRING_INDEX(email, '@', -1), '/' , SUBSTRING_INDEX(email, '@', 1), '/' ) FROM users WHERE email = '%s'
hosts = 127.0.0.1

И наконец создаём вспомогательный файл для виртуального отображения почты:

touch /etc/postfix/mysql-virtual_email2email.cf

В созданный файл /etc/postfix/mysql-virtual_email2email.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:

user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT email FROM users WHERE email = '%s'
hosts = 127.0.0.1

Установим нужные права и владельца на только что созданные файлы:

chmod o= /etc/postfix/mysql-virtual_*.cf
chgrp postfix /etc/postfix/mysql-virtual_*.cf

Добавим почтовую группу и пользователя для передачи почты. Все сообщения виртуальных почтовых ящиков будут храниться в папке /home/vmail на сервере:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m

На редактирование файл /etc/postfix/main.cf и убедимся в наличии следующих строк, адрес сервера следует заменить на выбранный ранее:

myhostname = mysrv.example.com
mydestination = mysrv.example.com, localhost, localhost.localdomain
mynetworks = 127.0.0.0/8
message_size_limit = 30720000
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

На этом мы закончим конфигурировать Postfix и перейдём к настройке SSL и генерации сертификата.

Создание SSL сертификата для Postfix

Нам нужно сгенерировать SSL сертификат для Postfix, чтобы работать с почтой по защищённому соединению. Это гораздо безопаснее нежели обычный доступ по незащищённому каналу. Перейдём в директорию Postfix и создадим там сертификат с приватным ключом:

cd /etc/postfix
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509

Сертификат создаётся на год, о чём говорит цифра 365.

На экран будет выведен диалог ввода информации о ключе:

Country Name (2 letter code) [US]: RU
State or Province Name (full name) [Some-State]: Central District
Locality Name (eg, city) []: Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany, LLC
Organizational Unit Name (eg, section) []: Email Services
Common Name (eg, YOUR name) []: mysrv.example.com
Email Address []: admin@example.com

Установим права на файл ключа таким образом, чтобы любой доступ был только у владельца, иными словами — отменим права у остальных:

chmod o= /etc/postfix/smtpd.key

На этом создание SSL сертификата завершено, перейдём к настройке saslauthd для доступа к MySQL.

Настройка saslauthd для доступа к MySQL

Saslauthd — это демон аутентификации, который работает посредствам SASL. Нам он нужен, чтобы связать Postfix с MySQL и позволять им совместно работать.

Для начала создадим директорию для saslauthd:

mkdir -p /var/spool/postfix/var/run/saslauthd

Сохраним начальную версию файла:

cp -a /etc/default/saslauthd /etc/default/saslauthd.bak

Откроем на редактирование файл /etc/default/saslauthd и установим в нём следующие значения:

START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

После этого нам нужно создать файл /etc/pam.d/smtp:

touch /etc/pam.d/smtp

И внести в него следующие строки. Укажите нужный пароль для пользователя «mail_admin», заменив «mail_admin_password» на верное значение:

auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

Создадим файл /etc/postfix/sasl/smtpd.conf:

touch /etc/postfix/sasl/smtpd.conf

И внесём в него следующие строки, так же заменив пароль на верный:

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: mail_admin_password
sql_database: mail
sql_select: SELECT password FROM users WHERE email = '%u'

Установим права на вновь созданные файлы:

chmod o= /etc/pam.d/smtp
chmod o= /etc/postfix/sasl/smtpd.conf

Теперь добавим пользователя postfix в группу sasl и перезапустим сервисы:

adduser postfix sasl
/etc/init.d/postfix restart
/etc/init.d/saslauthd restart

На этом конфигурирование saslauthd завершено. Далее мы настроим Dovecot на использование базы данных MySQL для IMAP/POP3 идентификации.

Настройка Dovecot

Dovecot — это IMAP и POP3 сервер, который позволит нам забирать почту программами сборщиками. Это гибкий и безопасный инструмент в системе Linux.

Нам нужно открыть на редактирование файл /etc/postfix/master.cf и добавить в конце следующие ниже строки:

dovecot unix - n n - - pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Сохраним для потомков изначальный конфигурационный файл Dovecot:

cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak

После чего откроем файл /etc/dovecot/dovecot.conf на редактирование и заменим всё его содержимое указанным ниже кодом. Ящик «postmaster@example.com» следует заменить на желаемый:

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir
 
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
 
namespace private {
  separator = .
  prefix = INBOX.
  inbox = yes
}
 
protocol lda {
  log_path = /home/vmail/dovecot-deliver.log
  auth_socket_path = /var/run/dovecot/auth-master
  postmaster_address = postmaster@example.com
  mail_plugins = cmusieve
}
 
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}
 
auth default {
  user = root
 
  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }
 
  userdb static {
    args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
  }
 
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = vmail
    }
 
    client {
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

MySQL будет сохранять в себе пароли доступа, поэтому мы сохраним копию первоначального /etc/dovecot/dovecot-sql.conf, а потом произведём настройку:

cp -a /etc/dovecot/dovecot-sql.conf /etc/dovecot/dovecot-sql.conf.bak

Содержимое исходного файла /etc/dovecot/dovecot-sql.conf полностью заменим на нижеуказанное, не забудем поменять пароль «mail_admin_password» на актуальный:

driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail_admin password=mail_admin_password
default_pass_scheme = CRYPT
password_query = SELECT email AS user, password FROM users WHERE email = '%u';

На этом настройка Dovecot завершена, следует перезагрузить его:

/etc/init.d/dovecot restart

Проверим файл /var/log/mail.log на отсутсвие ошибок:

tail -50 /var/log/mail.log

И найдём примерно следующие строки:

Feb 13 14:00:17 somevar dovecot: Dovecot v1.0.15 starting up
Jan 21 20:00:18 somevar dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mail)

Перед началом тестирования следует установить права и владельца на файл конфигурации Dovecot /etc/dovecot/dovecot.conf:

chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf

Проверим корректность работы POP3 сервера, для этого мы подключимся к POP3 серверу через терминал:

telnet localhost pop3

После ввода команды в консоли должно отобразиться примерно следующие:

Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Dovecot ready

Выйдем из режима терминала, пока он нам больше не нужен:

quit

С Dovecot разобрались, теперь перейдём к настройке алиасов.

Настройка почтовых алиасов

Откроем на редактирование файл /etc/aliases и убедимся в корректности значений для директив «postmaster» и «root», адрес почты для root следует изменить на желаемый:

postmaster: root
root: postmaster@example.com

Активируем новые алиасы и перезагрузим Postfix:

newaliases
/etc/init.d/postfix restart

На этом настройка алиасов завершена, перейдём к тестированию Postfix.

Тестирование Postfix

Для проверки корректности функционирования SMTP-AUTH и TLS, в консоли введём следующую команду:

telnet localhost 25

После успешного соединения, в терминале должно появиться что-то вроде этого:

220 mysrv.example.com ESMTP Postfix (Debian/GNU)

Далее вводим команду в терминал:

ehlo localhost

После ввода команды, в терминале должно отобразиться нечто вроде этого:

Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mysrv.example.com ESMTP Postfix (Debian/GNU)
ehlo localhost
250-mysrv.example.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Для нас важно наличие строки «250-STARTTLS». Вводим в терминал команду «quit» и перейдём к наполнению базы данных MySQL почтовыми доменами и пльзователями.

Настройка почтовых доменов и аккаунтов

На этом этапе нужно иметь настроенные записи DNS для почтовых доменов. Для этого следует создать необходимую запись MX, если её ещё нет, в списках DNS, которая будет указывать на полный домен.

Подключимся к MySQL из консоли, добавить аккаунт в MySQL можно любым другим способом, в том числе и из PHP или Python скрипта, но сейчас мы остановимся на консоли:

mysql -u root -p

Добавим в список доменов наш основной домен и создадим первый почтовый аккаунт, «example.com», «info@example.com» и «password» следует заменить корректными значениями:

USE mail;
INSERT INTO domains (domain) VALUES ('example.com');
INSERT INTO users (email, password) VALUES ('info@example.com', ENCRYPT('password'));
quit

Обратите внимание на команду шифрования пароля, добавлять или менять пароль нужно именно так.

Теперь попробуем отправить почту вновь созданному аккаунту. Это необходимо для создания структуры директорий на диске, которые появяться после получения первого письма. Для отправки почты непосредственно из консоли мы будем использовать mailx или bsd-mailx, в зависимости от того, что установилось выше:

mailx info@example.com

После ввода команды будет предложено ввести тему сообщения. Вводим, нажимаем Enter, после чего нажимаем Ctrl + D. Поле «CC» можно оставить пустым.

Так как почтовых доменов может быть несколько, следует указывать полный почтовый адрес «info@example.com» для сборщика почты, иначе по имени пользователя «info» нельзя будет определить, к какому домену он принадлежит и почта не будет отправлена или получена.

На этом перейдём к следующему шагу — проверке лог файлов.

Проверка логов

После отправки тестового сообщения нам следует проверить логи на остутствие ошибок. Проверим содержимое файла /var/log/mail.log в последних 50 строках:

tail -50 /var/log/mail.log

Мы должны увидеть нечто подобное:

Feb 13 15:07:49 somevar postfix/cleanup[5877]: E1D145803: message-id=<2011022113150749.E1D148908@mysrv.example.com>
Feb 13 15:07:49 somevar postfix/qmgr[5867]: E1D145803: from=, size=377, nrcpt=1 (queue active)
Feb 13 15:07:49 somevar postfix/pipe[5883]: E1D145803: to=, relay=dovecot, delay=0.05, delays=0.04/0.01/0/0.01, dsn=2.0.0, status=sent (delivered via dovecot service)
Feb 13 15:07:49 somevar postfix/qmgr[5867]: E1D145803: removed

Далее мы проверим лог доставки Dovecot, котрый находится в файле /home/vmail/dovecot-deliver.log и должны увидеть нечто похожее на:

deliver(info@example.com): 2011-02-13 17:05:19 Info: msgid=<20110213170519.E1D145803@mysrv.example.com>: saved mail to INBOX

Если в логе есть ошибки в работе сервиса cmusieve, не обращайте на них внимания, в конце статьи я расскажу как от них избавиться.

Теперь можно проверить структуру почтового хранилища и директорий на диске.

Проверка структуры директорий на диске

Перейдём в директорию /home/vmail/example.com/sales/Maildir, где «example.com» адрес нашего почтового домена:

cd /home/vmail/example.com/sales/Maildir

Выполним команду поиска:

find

Внутри директории должно содержаться примерно следующее:

./dovecot-uidlist
./cur
./new
./new/1285673545.P4152W0M168494.somevar
./dovecot.index
./dovecot.index.log
./tmp

Просмотреть почту можно прямо из консоли при помощи утилиты mutt:

cd /home/vmail/example.com/sales/Maildir
mutt -f .

Если она не установлена, выполним:

aptitude install mutt

Настройка почтовых программ

Пользователь может забрать почту любой доступной почтовой программой. В качестве IMAP/POP3 и SMTP сервера следует указать домен, записанный в MX записи интерфейса DNS, например «mail.example.com». Логин — это почтовый адрес пользователя, как уже говорилось это необходимо при мультидоменной конфигурации, которую мы и реализовали. Шифрование входящей почты — SSL, исходящей — TLS.

Чтобы забирать почту пользователя root, в нашем примере его почтовый ящик «root@mysrv.example.com», следует настроить переадресацию в таблице forwardings:

mysql -u root -p

USE mail;
INSERT INTO forwardings (source, destination) VALUES ('root@mysrv.example.com', 'postmaster@example.com');
quit

После этого вся системная почта — уведомления CRON, сообщение от вспомогательных программ и сервисов — будет пренаправлена на новый адрес, с которого мы можем её забрать.

Возможные проблемы

Единственная проблема, замеченная в логах, это несоответствие пакета cmusieve в Debian 6 Squeeze. В файле /home/vmail/ наблюдалось примерно следующее:

2011-02-13 20:23:31 deliver(info@example.com): Fatal: Plugin cmusieve not found from directory /usr/lib/dovecot/modules/lda

Дабы исправить положение установим нужный пакет, который теперь называется sieve, в этом собственно и проблема:

aptitude install libsieve2-1

Потом, нужно открыть файл /etc/dovecot/dovecot.conf на редактирование и заменить строку:

mail_plugins = cmusieve

На нижеуказанную:

mail_plugins = sieve

Перезагружаем Dovecot:

/etc/init.d/dovecot restart

После этих несложных действий логи стали чисты.

——

На всякий случай, при возникновении ощибки: «Fatal: Unknown database driver ‘mysql'».
Dovecot требуется пакет dovecot-mysql для MySQL авторизации:

apt-get install dovecot-mysql

Перезагружаем Dovecot:

/etc/init.d/dovecot restart

Список базовых почтовых портов

  • POP3 — port 110
  • IMAP — port 143
  • SMTP — port 25
  • HTTP — port 80
  • Secure SMTP (SSMTP) — port 465
  • Secure IMAP (IMAP4-SSL) — port 585
  • IMAP4 over SSL (IMAPS) — port 993
  • Secure POP3 (SSL-POP) — port 995

Инструкции по теме:

77 thoughts on “Серверная почта на основе Postfix, Dovecot и MySQL для Debian

  1. Юрий:

    Спасибо за статью!
    Однако столкнулся с проблемой по этому мануалу.
    Не поднимается postfix после редактирования master.cf
    В /var/log/mail.log ошибка такого рода:

    fatal:/etc/postfix/master.cf : bad transport type: user=vmail:vmail

    Предпологаю, что мой postfix ожидает другого порядка параметров?

    Буду рад, если поможете.

    • nuty:

      Моя ошибка, вот здесь (в файле /etc/postfix/master.cf) вторая трока обязательно должна быть с пробелами:
      dovecot unix - n n - - pipe
        flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

      Потом перезапустите Postfix:
      /etc/init.d/postfix restart

      • zaaks:

        Спасибо за статью. у меня такая же проблема в логах.
        fatal: /etc/postfix/master.cf: line 110: bad transport type: user=vmail:vmail
        Напишите пожалуйста правильный вариант конфига, ато вроде везде стоят пробелы но ошибка все равно осталась. Спасибо.

  2. Юрий:

    Спасибо большое. Вы не против, если я статью в своем блоге размещу? С ссылкой на оригинал естественно.

  3. Oren:

    Столкнулся с такой проблемой — не могу подключится по 25 порту. postfix стартует, но в mail.err висит ошибка postfix/proxymap[26028]: fatal: dict_open: unsupported dictionary type: mysql: Is the postf$"

    • nuty:

      Пункт «Тестирование Postfix» через telnet прошли успешно? Стоит проверить, установлен ли пакет postfix-mysql и правильно ли заполнен файл /etc/postfix/main.cf из пункта «Настройка Postfix на работу с MySQL», может быть ошибка при внесении названии пакетов.

  4. Oren:

    переустановил postfix работает нормально спасибо.

  5. Oren:

    Теперь в логах другая ошибка postfix/local[3467]: warning: alias database loop for postmaster

    • nuty:

      Адрес от имени которого рассылается системная почта — root@mysrv.example.com, пользователь root — и адрес пользователя root — postmaster@example.com, из файла /etc/aliases — не должны совпадать, а то получится такая вот петля, когда сервер сам себе шлёт письмо и пытается его переслать снова.

      Исправьте и выполните:
      newaliases
      /etc/init.d/postfix restart

  6. paranoidchaos:

    а где настройки квоты через базу ?

    такое же делал под постгрес — полёт уже как три года стабильно

  7. kryos:

    Настроил сервер по этому руководству. Но не как не могу понять почему неверно работает авторизация. отправляю . При авторизации задаю неверный пароль. письмо smtp: Connect to host

    smtp: Start AUTH
    smtp: AUTH CRAM-MD5
    smtp: AUTH LOGIN
    smtp: AUTH PLAIN
    SMTP server error
    smtp: MAIL FROM:

    smtp: RCPT TO:

    smtp: Send message message sent
    smtp: QUIT

    …………..SMTP Test Success…………..
    письмо доставлено с неверным паролем …
    С верным паролем.
    smtp: Connect to host

    smtp: Start AUTH
    smtp: AUTH CRAM-MD5
    smtp: AUTH LOGIN
    success
    smtp: MAIL FROM:

    smtp: RCPT TO:

    smtp: Send message message sent
    smtp: QUIT

    …………..SMTP Test Success…………..
    и в этом случае письмо доставлено адресату.. Получается любой кто знает имя почтового ящика может посылать письма не зная пароля к нему
    В mail.log
    Mar 9 18:57:37 mailsrv postfix/smtpd[4213]: connect from unknown[62.33.203.170]
    Mar 9 18:57:37 mailsrv postfix/smtpd[4213]: warning: unknown[62.33.203.170]: SASL CRAM-MD5 authentication failed: no mechanism available
    Mar 9 18:57:38 mailsrv postfix/smtpd[4213]: 039E82140A73: client=unknown[62.33.203.170], sasl_method=LOGIN, sasl_username=ipcam@example.com
    Mar 9 18:57:38 mailsrv postfix/cleanup[4217]: 039E82140A73: message-id=
    Mar 9 18:57:38 mailsrv postfix/qmgr[4138]: 039E82140A73: from=, size=347, nrcpt=1 (queue active)
    Mar 9 18:57:38 mailsrv postfix/smtpd[4213]: disconnect from unknown[62.33.203.170]
    Mar 9 18:57:38 mailsrv postfix/pipe[4218]: 039E82140A73: to=, relay=dovecot, delay=0.99, delays=0.76/0/0/0.23, dsn=2.0.0, status=sent (delivered via dovecot service)
    Mar 9 18:57:38 mailsrv postfix/qmgr[4138]: 039E82140A73: removed
    Mar 9 18:59:01 mailsrv postfix/anvil[4203]: statistics: max connection rate 2/60s for (smtp:62.33.203.170) at Mar 9 18:51:18
    Mar 9 18:59:01 mailsrv postfix/anvil[4203]: statistics: max connection count 1 for (smtp:62.33.203.170) at Mar 9 18:49:01
    Mar 9 18:59:01 mailsrv postfix/anvil[4203]: statistics: max cache size 1 at Mar 9 18:49:01

    • nuty:

      Весьма странно, к счастью не наблюдаю такой проблемы…
      Что пишется в этом случае:
      telnet localhost 25

      а потом команда терминалу:
      ehlo localhost

      Письмо в итоге пришло на нужный ящик, или postmaster?

  8. kryos:

    telnet localhost 25
    Trying ::1…
    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.
    220 mailsrv.example.com ESMTP Postfix
    ehlo localhost
    250-mailsrv.example.com
    250-PIPELINING
    250-SIZE 30720000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN
    250-AUTH=LOGIN PLAIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    письмо пришло на нужный ящик

  9. kryos:

    pwcheck_method: saslauthd
    mech_list: plain login
    allow_plaintext: true
    auxprop_plugin: mysql
    sql_hostnames: 127.0.0.1
    sql_user: mail_admin
    sql_passwd: ****
    sql_database: mail
    sql_select: SELECT password FROM users WHERE email = ‘%u’

  10. serfer:

    Подскажите, как разрешить аутентификацию без SSL?

  11. Ваша статья выложена и оформлена. Можете убедиться в наличии копирайта 🙂

  12. Alexander:

    Здравствуйте, подскажите пожалуйста в какую сторону надо копать. Письма не приходят, в логах появляются сообщения:

    postfix/local[4035]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled

    postfix/local[4035]: 510AB30484: to=, relay=local, delay=0.16, delays=0.1/0.03/0/0.02, dsn=5.1.1, status=bounced (unknown user: «info»)

  13. Да, кстати. Все читающие — не спешите выполнять замену в конфиге dovecot.conf плагина cmusieve. Я это сделал сразу, в итоге полдня убил, выясняя почему письма не отправляются. Сам виноват конечно, но все равно — острожней.

  14. Здравствуйте! У меня вот такая проблема:

    Mar 10 13:45:20 vgipu postfix/trivial-rewrite[5015]: warning: do not list domain МОЙ_ДОМЕН in BOTH mydestination and virtual_mailbox_domains
    Mar 10 13:45:20 vgipu postfix/local[5016]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled

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

    • в конфиге main.cf убери свой домен из mydestination
      т.е. если у тебя домен example.com, то там должно быть:
      mydestination = mail.example.com, localhost, localhost.localdomain
      но не example.com, localhost, localhost.localdomain

  15. Nike:

    Сделал все по статье. Только почему-то dovecot не пишет ничего в лог-файл и не создаются файлы в папке /home/vmail.

  16. Ярослав:

    подскажите, как правильно настроить mx запись и днс для почтового домена? а так же ptr запись, поскольку мой провайдер прописывать у себя ее не хочет

  17. codex:

    Настраивал все по мануалу, что в статье, однако вылезает ошибка:

    Mar 17 16:13:54 ip-10-226-61-156 dovecot: Dovecot v1.2.12 starting up (core dumps disabled)
    Mar 17 16:13:54 ip-10-226-61-156 dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mail)
    Mar 17 16:14:57 ip-10-226-61-156 postfix/smtpd[13805]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled
    Mar 17 16:14:57 ip-10-226-61-156 postfix/smtpd[13805]: connect from unknown[213.33.231.122]
    Mar 17 16:14:57 ip-10-226-61-156 postfix/trivial-rewrite[13809]: warning: do not list domain 2bcreative.ru in BOTH mydestination and virtual_mailbox_domains
    Mar 17 16:14:57 ip-10-226-61-156 postfix/smtpd[13805]: 7A1FE21626: client=unknown[213.33.231.122]
    Mar 17 16:14:57 ip-10-226-61-156 postfix/cleanup[13813]: 7A1FE21626: message-id=
    Mar 17 16:14:57 ip-10-226-61-156 postfix/qmgr[13379]: 7A1FE21626: from=, size=457, nrcpt=1 (queue active)
    Mar 17 16:14:57 ip-10-226-61-156 postfix/trivial-rewrite[13809]: warning: do not list domain 2bcreative.ru in BOTH mydestination and virtual_mailbox_domains
    Mar 17 16:14:57 ip-10-226-61-156 postfix/local[13815]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled
    Mar 17 16:14:57 ip-10-226-61-156 postfix/local[13815]: 7A1FE21626: to=, relay=local, delay=0.25, delays=0.23/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: «it»)
    Mar 17 16:14:57 ip-10-226-61-156 postfix/cleanup[13813]: A2B4121636: message-id=
    Mar 17 16:14:57 ip-10-226-61-156 postfix/qmgr[13379]: A2B4121636: from=, size=2173, nrcpt=1 (queue active)
    Mar 17 16:14:57 ip-10-226-61-156 postfix/bounce[13816]: 7A1FE21626: sender non-delivery notification: A2B4121636
    Mar 17 16:14:57 ip-10-226-61-156 postfix/qmgr[13379]: 7A1FE21626: removed
    Mar 17 16:14:57 ip-10-226-61-156 postfix/smtp[13818]: A2B4121636: to=, relay=none, delay=0.02, delays=0.01/0.01/0/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=mail.local type=A: Host not found)
    Mar 17 16:14:57 ip-10-226-61-156 postfix/qmgr[13379]: A2B4121636: removed
    Mar 17 16:14:57 ip-10-226-61-156 postfix/smtpd[13805]: disconnect from unknown[213.33.231.122]

    Прошу помочь 😉

  18. codex:

    Имеется в виду строка с unknown user: «it»

  19. Artem:

    Уважаемый автор у меня ошибка такого рода:
    7 17:18:34 custom postfix/master[30204]: fatal: open lock file /var/lib/postfix/master.lock: cannot open file: Permission denied

  20. Timophey:

    выполнил указания статьи, все работает, у меня Debian 6. я использую Mozilla Thunderbird как почтовый клиент, сначала он отказывался сохранять отправленную почту в папку Sent, после долгих копаний по google нашел нужную информацию. Если у кого-то похожая ошибка попробуйте вот эту ссылку. Единственное, клиент соединяется через TLS, хотелось бы узнать как настроить работу Postfix для работы через SSL протокол.

  21. Timophey:

    Разобрался и настроил, теперь все работает. Чтобы запустить работу postfix через ssl/tls необходимо в /etc/postfix/master.cf раскомментировать строки для запуска ssmtp на 465 порту.
    Спасибо за статью!

  22. leo:

    Apr 13 11:35:32 mail postfix/smtpd[27743]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
    Apr 13 11:35:32 mail postfix/smtpd[27743]: warning: SASL authentication failure: Password verification failed
    Apr 13 11:35:32 mail postfix/smtpd[27743]: warning: unknown[192.168.1.50]: SASL PLAIN authentication failed: generic failure

    debian 6
    Не отправляет почту
    подозреваю что связано с чрутами
    /var/spool/postfix/var/run/saslauthd пусто

  23. XanderEVG:

    Спасибо за статью, Вы спасли мой курсовой!!
    Затык был в несоответствии cmusieve в дебиане. Замена на sieve все решила!

  24. verlorn:

    Не работает доставка сообщений, при авторизации на smtp внешние MTA сервера используют логин префикса домена, на сервере же настроена авторизация по логину вида email@domain.com. Как победить?
    Вот лог:
    : unknown user: «admin»

    Reporting-MTA: dns; verlorn.ru
    X-Postfix-Queue-ID: 11C5B4269D
    X-Postfix-Sender: rfc822; 0x1337@mail.ru
    Arrival-Date: Sun, 15 May 2011 03:22:05 +0200 (CEST)

    Final-Recipient: rfc822; admin@verlorn.ru
    Original-Recipient: rfc822;admin@verlorn.ru
    Action: failed
    Status: 5.1.1
    Diagnostic-Code: X-Postfix; unknown user: «admin»

  25. tdosov:

    все сделал по мануалу, но postfix не запускается :
    May 24 11:26:36 mail dovecot: Dovecot v1.2.15 starting up (core dumps disabled)
    May 24 11:26:36 mail dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mail)
    May 24 11:26:58 mail postfix/master[2408]: fatal: /etc/postfix/master.cf: line 113: field «private»: bad value: «???»

  26. tdosov:

    Скопипастил строчку из первого комментария — заработало (не понял почему).

  27. tdosov:

    при попытке mailx test@lombard.local в mail.log выскакивает периодически сообщение :
    May 25 17:04:46 mail postfix/pickup[908]: 05C7C1780AF4: uid=0 from=
    May 25 17:04:46 mail postfix/cleanup[1548]: 05C7C1780AF4: message-id=
    May 25 17:04:46 mail postfix/qmgr[909]: 05C7C1780AF4: from=, size=307, nrcpt=1 (queue active)
    May 25 17:04:46 mail postfix/pipe[1551]: 05C7C1780AF4: to=, relay=dovecot, delay=0.23, delays=0.14/0/0/0.08, dsn=4.3.0, status=deferred (temporary failure)

    (пользователь test@lombard.local есть mail.users)
    проверка telnet полностью проходит как описано,
    непонимаю.

  28. tdosov:

    Почему-то roundcube не пускает под root’ом

  29. Vano:

    Помогите, пожалуйста, при вводе команды «telnet localhost 25» не конектится к postfix?
    Вот что выдает:
    «Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.»

  30. Иван:

    Не проходит команда telnet localhost 25
    Выдает ошибку: Unable to connect to remote host: Connection refused

  31. Alexander:

    Jun 1 15:17:32 mail2 dovecot: auth-worker(default): mysql: Connect failed to 127.0.0.1 (mail): Access denied for user ‘mailadmin’@’localhost’ (using password: YES) — waiting for 1 seconds before retry
    Jun 1 15:28:50 (none) dovecot: Dovecot v1.2.12 starting up (core dumps disabled)
    Jun 1 15:28:51 (none) dovecot: auth-worker(default): mysql: Connect failed to 127.0.0.1 (mail): Can’t connect to MySQL server on ‘127.0.0.1’ (111) — waiting for 1 seconds before retry
    Jun 1 15:40:44 (none) postfix/master[1710]: warning: /etc/postfix/master.cf: logical line must not start with whitespace: » smtp inet…»
    Jun 1 15:40:44 (none) postfix/master[1710]: daemon started — version 2.7.1, configuration /etc/postfix

  32. dracon753:

    ключик для dovecot dovecot.pem создавали сами ? Опишите процедуру создания

  33. Versus:

    Пытаюсь отправить письмо
    root@mysrv:/home/serg# mailx info@example.com

    оно попадает в очередь
    Jun 15 14:04:41 mysrv postfix/pickup[1354]: 821EA38E8: uid=0 from=
    Jun 15 14:04:41 mysrv postfix/cleanup[2494]: 821EA38E8: message-id=
    Jun 15 14:04:41 mysrv postfix/qmgr[1355]: 821EA38E8: from=, size=289, nrcpt=1 (queue active)
    Jun 15 14:04:41 mysrv postfix/pipe[2479]: 821EA38E8: to=, relay=dovecot, delay=0.18, delays=0.09/0/0/0.09, dsn=4.3.0, status=deferred (temporary failure)

    Почему? Помогите пожалуйста!

  34. Versus:

    а здесь /home/vmail/dovecot-deliver.log
    вот такие ошибки:
    2011-06-15 16:04:39 deliver(info@example.com): Error: userdb lookup: connect(/var/run/dovecot/auth-master) failed: Connection refused

  35. Versus:

    Все, разобрался! После aptitude install libsieve2-1 заработало!

  36. MainRoot:

    делал все по инструкции, но после

    в логах
    mail.log
    <blockquote cite="Jul 12 23:28:50 s3 postfix/qmgr[1201]: 7475D7BC1E: from=, size=277, nrcpt=1 (queue active)
    Jul 12 23:28:50 s3 postfix/pipe[2285]: 7475D7BC1E: to=, relay=dovecot, delay=1753, delays=1753/0.17/0/0.07, dsn=4.3.0, status=deferred (temporary failure)
    Jul 12 23:33:37 s3 postfix/pickup[1200]: D634F7BC20: uid=0 from=
    Jul 12 23:33:37 s3 postfix/cleanup[3125]: D634F7BC20: message-id=
    Jul 12 23:33:37 s3 postfix/qmgr[1201]: D634F7BC20: from=, size=273, nrcpt=1 (queue active)
    Jul 12 23:33:37 s3 postfix/pipe[3129]: D634F7BC20: to=, relay=dovecot, delay=0.12, delays=0.07/0.02/0/0.03, dsn=4.3.0, status=deferred (temporary failure)»>
    dovecot.log

    и не создаются почтовые директории при создании домена

    • MainRoot:

      после
      mailx info@example.com
      в mail.log
      Jul 12 23:28:50 s3 postfix/qmgr[1201]: 7475D7BC1E: from=, size=277, nrcpt=1 (queue active)
      Jul 12 23:28:50 s3 postfix/pipe[2285]: 7475D7BC1E: to=, relay=dovecot, delay=1753, delays=1753/0.17/0/0.07, dsn=4.3.0, status=deferred (temporary failure)
      Jul 12 23:33:37 s3 postfix/pickup[1200]: D634F7BC20: uid=0 from=
      Jul 12 23:33:37 s3 postfix/cleanup[3125]: D634F7BC20: message-id=
      Jul 12 23:33:37 s3 postfix/qmgr[1201]: D634F7BC20: from=, size=273, nrcpt=1 (queue active)
      Jul 12 23:33:37 s3 postfix/pipe[3129]: D634F7BC20: to=, relay=dovecot, delay=0.12, delays=0.07/0.02/0/0.03, dsn=4.3.0, status=deferred (temporary failure)

      в dovecot.log
      2011-07-12 23:23:50 deliver(info@example.com): Fatal: setgid(5000) failed with euid=1001(vmail), gid=1001(vmail), egid=1001(vmail): Operation not permitted (This binary should probably be called with process group set to 5000 instead of 1001(vmail))
      2011-07-12 23:23:50 deliver(info@example.com): Fatal: setgid(5000) failed with euid=1001(vmail), gid=1001(vmail), egid=1001(vmail): Operation not permitted (This binary should probably be called with process group set to 5000 instead of 1001(vmail))
      2011-07-12 23:23:50 deliver(info@example.com): Fatal: setgid(5000) failed with euid=1001(vmail), gid=1001(vmail), egid=1001(vmail): Operation not permitted (This binary should probably be called with process group set to 5000 instead of 1001(vmail))
      2011-07-12 23:28:50 deliver(info@example.com): Fatal: setgid(5000) failed with euid=1001(vmail), gid=1001(vmail), egid=1001(vmail): Operation not permitted (This binary should probably be called with process group set to 5000 instead of 1001(vmail))
      2011-07-12 23:33:37 deliver(info@example.com): Fatal: setgid(5000) failed with euid=1001(vmail), gid=1001(vmail), egid=1001(vmail): Operation not permitted (This binary should probably be called with process group set to 5000 instead of 1001(vmail))

  37. Andrew:

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

  38. герман:

    для чего создаётся таблица транспортов, если для неё нет ни одного запроса?

  39. Алексей:

    У меня вроде как всё работает кроме авторизации при отправке почты. Вот что логи выдают:

    Nov 3 20:07:46 v21137 postfix/smtpd[26609]: connect from xenoworld.ru[178.254.1.137]
    Nov 3 20:07:48 v21137 postfix/smtpd[26609]: warning: xenoworld.ru[178.254.1.137]: SASL LOGIN authentication failed: authentication failure
    Nov 3 20:07:48 v21137 postfix/smtpd[26609]: disconnect from xenoworld.ru[178.254.1.137]

  40. enzo_brn:

    Всем здрасте и хорошего дня. СПС за статью, все работает отлично, правда были заморочеи с правами. Такой вопрос: как отсылать почту в глобал используя postfix как релей
    relayhost = mail.my-isp-example.ru
    Что нужно донастроить? Большое спасибо)

  41. Алексей:

    Добрый день!

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

    Mar 1 20:43:14 web postfix/proxymap[2730]: warning: connect to mysql server 127.0.0.1: Access denied for user ‘mail_admin’@’localhost’ (using password: YES)
    Mar 1 20:43:14 web postfix/trivial-rewrite[2871]: fatal: proxy:mysql:/etc/postfix/mysql-virtual_domains.cf(0,lock|fold_fix): table lookup problem
    Mar 1 20:43:15 web postfix/qmgr[2727]: warning: problem talking to service rewrite: Success
    Mar 1 20:43:15 web postfix/master[2721]: warning: process /usr/lib/postfix/trivial-rewrite pid 2871 exit status 1
    Mar 1 20:43:15 web postfix/master[2721]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup — throttling

    Как я понимаю 1-я проблема в том что postfix не может подключиться к mysql.
    Все конфиги где ставил пароль для пользователя mail_admin перепроверил, кроме того я могу войти в базу под этим пользователем из phpmyadmin, правда без @localhost.

    Подскажите куда копать, бьюсь 2-й час..

  42. Алексей:

    Нашел ошибку — все-таки пароль в mysql-virtual_domains.cf отличался на 1 символ.. Вечером внимательность хромает)

  43. FX:

    Error: Can’t use SSL certificate /etc/ssl/certs/dovecot.pem: No such file or directory
    Где взять dovecot.pem?

  44. Артём:

    Доброго времени суток. Выполнил установку. Проверил. Всё работает. Даже добавил ещё домен и п/я для него. Письма бегают между пользователями этих двух доменов. Отправляются письма и в мир, хоть и не на все сервера))
    А вопрос следующий. для чего нужна была таблица транспорт?

  45. Илья:

    Сертификат для dovecot:
    openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem

  46. Ростислав:

    Первый раз создаю почтовый сервер и у меня возник вопрос.
    В логе dovecot-deliver при отправке тестового письма на info@testdomen.ru возникает ошибка:

    deliver (info@testdomen.ru): Error: mkdir (/home/vmail/testdomen.ru/info/Maildir/cur) in directory /var/spool/postfix/ failed: Permission denied (euid=5000(vmail) egid=5000(vmail))

    я просто не понимаю при чем тут /var/spool/postfix?
    в конфигурации он нигде не фигурирует

  47. вячеслав:

    Добрый день, сделал всё по статье, всё отлично работает, письма шлются друг другу. с внешки тоже приходят, но не получается отправлять на внешку… The Bat пишет !04.07.2012, 10:07:10: SEND — Письмо не отправлено. Сервер сообщает: 5.7.1 : Relay access denied

    и так на все адреса… в чём проблема???

    /var/log/mail.log

    Jul 4 10:07:26 mailserv postfix/smtpd[1318]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled
    Jul 4 10:07:26 mailserv postfix/smtpd[1318]: connect from utg.in.ua[78.26.169.34]
    Jul 4 10:07:26 mailserv postfix/smtpd[1318]: NOQUEUE: reject: RCPT from utg.in.ua[78.26.169.34]: 554 5.7.1 : Relay access denied; fro$
    Jul 4 10:07:26 mailserv postfix/smtpd[1318]: NOQUEUE: reject: RCPT from utg.in.ua[78.26.169.34]: 554 5.7.1 : Relay access denied; from=<b$
    Jul 4 10:07:26 mailserv postfix/smtpd[1318]: disconnect from utg.in.ua[78.26.169.34]

  48. вячеслав:

    переключился на шлюз черег который проходит почтовик и в логах это…
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: connect from unknown[192.168.100.26]
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: NOQUEUE: reject: RCPT from unknown[192.168.100.26]: 554 5.7.1 : Relay access denied; fro$
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: NOQUEUE: reject: RCPT from unknown[192.168.100.26]: 554 5.7.1 : Relay access denied; from=<b$
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: disconnect from unknown[192.168.100.26]

  49. вячеслав:

    сорри, вот подробней

    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: warning: dict_nis_init: NIS domain name not set — NIS lookups disabled
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: connect from unknown[192.168.100.26]
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: NOQUEUE: reject: RCPT from unknown[192.168.100.26]: 554 5.7.1 :
    Relay access denied; from= to= proto=ESMTP helo=
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: NOQUEUE: reject: RCPT from unknown[192.168.100.26]: 554 5.7.1 :
    Relay access denied; from= to= proto=ESMTP helo=
    Jul 4 10:53:43 mailserv postfix/smtpd[1381]: disconnect from unknown[192.168.100.26]
    Jul 4 10:57:03 mailserv postfix/anvil[1384]: statistics: max connection rate 1/60s for (smtp:192.168.100.26) at Jul 4 10:53:43
    Jul 4 10:57:03 mailserv postfix/anvil[1384]: statistics: max connection count 1 for (smtp:192.168.100.26) at Jul 4 10:53:43
    Jul 4 10:57:03 mailserv postfix/anvil[1384]: statistics: max cache size 1 at Jul 4 10:53:43

  50. вячеслав:

    разобрался!! добавил свою сеть mynetworks и побежало)) спасибо за статью, очень помогла)) работает 100%

  51. вячеслав:

    ещё такой вопрос, как сделать чтоб smtp проходил авторизацию?

  52. Руслан:

    У меня больше 2000 пользователей и все настроены на авторизацию по логину. А теперь надо указывать в логине полностью user@….. Что и где надо прописать чтобы спрашивал только логин?

  53. J/C:

    Так:
    mysql -u root -p
    USE mail;
    ALTER TABLE users ADD (user varchar(80) not null);
    UPDATE users SET user=SUBSTRING_INDEX(email, ‘@’, 1);
    quit;
    и в файле /etc/pam.d/smtp вместо usercolumn=email написать usercolumn=user

  54. Кеша:

    Не создаются папки в vmail. В логах все нормально, куда посмотреть?

    • nuty:

      Скорее всего дело в правах, можно попробовать снова выполнить:
      groupadd -g 5000 vmail
      useradd -g vmail -u 5000 vmail -d /home/vmail -m

      • Кеша:

        Пользователь уже создан. Домашняя папка тоже (/home/vmail). Единственное отличие от статьи использую centos.

        Sep 6 17:48:16 56 postfix/pickup[23468]: 66E431A6E8001: uid=0 from=
        Sep 6 17:48:16 56 postfix/cleanup[23500]: 66E431A6E8001: message-id=
        Sep 6 17:48:16 56 postfix/qmgr[23469]: 66E431A6E8001: from=, si ze=380, nrcpt=2 (queue active)
        Sep 6 17:48:16 56 postfix/local[23506]: 66E431A6E8001: to=, or ig_to=, relay=local, delay=0.05, delays=0.03/0.01/0/0.01, dsn=5.1.1, status=bounced (unkno wn user: "etere")
        Sep 6 17:48:16 56 postfix/pipe[23507]: 66E431A6E8001: to=, relay=dov ecot, delay=0.05, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered via dovecot service)
        Sep 6 17:48:16 56 postfix/cleanup[23500]: 6E6B91A6E8002: message-id=
        Sep 6 17:48:16 56 postfix/bounce[23511]: 66E431A6E8001: sender non-delivery notification: 6E6B91 A6E8002
        Sep 6 17:48:16 56 postfix/qmgr[23469]: 6E6B91A6E8002: from=, size=2308, nrcpt=1 (queue active)
        Sep 6 17:48:16 56 postfix/qmgr[23469]: 66E431A6E8001: removed
        Sep 6 17:48:16 56 postfix/cleanup[23500]: 6F8681A6E8001: message-id=
        Sep 6 17:48:16 56 postfix/local[23506]: 6E6B91A6E8002: to=, rel ay=local, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (forwarded as 6F8681A6E8001)
        Sep 6 17:48:16 56 postfix/qmgr[23469]: 6F8681A6E8001: from=, size=2465, nrcpt=1 (queue active)
        Sep 6 17:48:16 56 postfix/qmgr[23469]: 6E6B91A6E8002: removed
        Sep 6 17:48:16 56 postfix/pipe[23507]: 6F8681A6E8001: to=, ori g_to=, relay=dovecot, delay=0.01, delays=0/0/0/0.01, dsn=2.0.0, status=sent (delivered via dovecot service)
        Sep 6 17:48:16 56 postfix/qmgr[23469]: 6F8681A6E8001: removed

  55. allkex:

    та же проблема не создаются каталоги в vmail права проверил все норм но каталогов нет в чем еще трабл может быть?

  56. DokeR:

    Не могу разобраться в чем проблема. В лог пишет:

    Dec 13 20:22:06 localhost postfix/smtpd[31037]: fatal: /etc/postfix/mysql-virtual_email2email.cf: bad string length 0 < 1: dbname =
    Dec 13 20:22:07 localhost postfix/master[31031]: warning: process /usr/lib/postfix/smtpd pid 31037 exit status 1
    Dec 13 20:22:07 localhost postfix/master[31031]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling

    Вот содержимое файла mysql-virtual_email2email.cf:

    user = mail_admin
    password = ******
    dbname = mail
    query = SELECT email FROM users WHERE email = '%s'
    hosts = 127.0.0.1

  57. На шаге тестирования postfix нет вывода со строкой:

    250-STARTTLS

    куда копать?

  58. Как оказалось, в памяти висел старый процесс sendmail, postfix не стартовал, вопрос снимается.

  59. Mih:

    ребята помогите!!!!!!!!! Делал все по статье, статья блеск!! все работает по поп3, а на аймап ни в какую!! пишет неправильно заданы имя польз и пароль! подключение imap 143 STARTTLS и SMTP 25 STARTTLS. в логах норм. внутри серва все отсылается — доставляется!!

Добавить комментарий