Postfix - это один из самых популярных почтовых серверов, который используется для отправки, приема и пересылки почты в различных системах. Очень часто Postfix используют в качестве почтового сервера по умолчанию для веб-сайтов, поскольку он поддерживает все необходимые функции и несложен в настройке, в отличие от SendMail.
В этой статье мы рассмотрим, как выполняется установка Postfix Ubuntu 20.04. Хотя статья ориентирована именно на Ubuntu, но, вся информация может быть применена и для других дистрибутивов. Раньше на этом месте была другая статья, она была более обширная, но и более сложная. Я решил сделать её проще.
Содержание статьи
Установка Postfix в Ubuntu 20.04
1. Настройка DNS зоны
Вы не сможете заставить все это работать на локальной машине, без привязанного к ней домена. И на сервере со статическим IP нужно сначала правильно настроить доменную зону. Это очень важно.
Вам нужно чтобы A и MX записи вашего домена указывали на IP адрес вашего сервера. Обычно это можно настроить в панели управления доменом. На обновление доменной зоны может уйти 1-2 дня. Например, в данной статье я буду использовать домен vps.losst.pro. A запись будет выглядеть вот так:
В данном случае надо писать только поддомен. А В MX записи для корневого домена следует указывать знак @. Но для поддомена надо указать этот поддомен:
2. Настройка имени хоста
Дальше вам нужно правильно настроить доменное на вашем VPS. FQDN (Fully Qualified Domain Name) должно состоять из имени хоста и зарегистрированного доменного имени. Сначала установим имя хоста с помощью hostnamectl. Например:
sudo hostnamectl set-hostname vps
Затем нужно добавить строчку с именем домена FQDN в файл /etc/hosts. Обратите внимание, что если у вас есть другие домены, то нужный надо расположить в самом верху. Здесь нужно указать ваш статический адрес, имя хоста и зарегистрированный домен:
sudo vi /etc/hosts
Теперь у вас есть FQDN, который будет использоваться почтовым сервером. Переходим к установке ПО.
3. Установка Postfix
Сначала обновите репозитории до самой новой версии:
sudo apt update
Затем выполните команду для установки Postfix и нужных программ:
sudo apt install postfix mailutils
Кроме самого почтового сервиса нам понадобиться набор утилит mailutils для тестирования его работы. Установка займет некоторое время в зависимости от скорости вашего интернета. Во время установки вам предстоит ответить на несколько вопросов. Надо выбрать вариант конфигурации Postfix:
Здесь нажмите Ок, затем на следующем шаге выберите Интернет сайт:
Дальше вам нужно ввести ваш FQDN, настроенный ранее, в данном случае, vps.losst.pro:
После завершения все сервисы запустятся автоматически, а мы можем перейти к дальнейшей настройке.
4. Настройка имени хоста
Осталось настроить имя хоста и можно пробовать тестировать работу Postfix. Откройте файл /etc/postfix/main.cf и убедитесь, что в переменной myhostname содержится ваш FQDN. Если нет - поправьте:
sudo vi /etc/postfix/main.cf
В переменной mydestination должны быть перечислены все домены, для которых вы собираетесь принимать почту. В том числе и vps.losst.pro.
5. Тестирование отправки почты
Теперь почтовый сервер готов к работе. Он будет отправлять письма от имени настроенного домена, в данном случае vps.losst.pro, а в качестве почтовых ящиков будут использоваться пользователи в системе. В данном случае root. Чтобы отправить тестовое письмо воспользуйтесь утилитой mail:
echo "Test mail" | mail -s "Test mail" ваш_ящик@mail.ru
Далее на своей почте вы должны найти отправленное письмо. Сейчас для отправки почты не используется шифрование, поэтому если письмо не пришло, проверьте папку Спам.
Убедитесь, что отправитель такой, как мы обсудили. А затем ответьте на это письмо. Если всё настроено верно, то выполнив утилиту mail без параметров вы сможете прочитать ваш ответ:
mail
6. Виртуальные почтовые ящики
На данный момент почтовый сервер умеет получать почту только для пользователей, зарегистрированных в системе. Но в большинстве случаев этого не достаточно. Надо чтобы сервер позволял работать с виртуальными пользователями, которых создали мы сами. Сначала давайте создадим папку, в которой будут храниться наши виртуальные почтовые ящики, а также сами ящики:
sudo mkdir -p /home/vmail{admin,support,info}
Всем этим будет владеть пользователь vmail с группой vmail, их надо тоже создать:
sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m
Далее дайте права на ранее созданную папку пользователю vmail:
chown vmail:vmail /home/vmail
Далее можно переходить к настройке Postfix. Сначала надо убрать домен для которого мы будем принимать почту на виртуальные почтовые ящики из переменной mydestinations. Доставка почты для домена можно выполняться либо по системным пользователям через директиву mydestinations, либо по виртуальным ящикам с помощью директивы virtual_mailbox_domains. Добавьте его в эту директиву и ещё несколько параметров:
sudo vi /etc/postfix/main.cf
Параметр virtual_mailbox_base содержит путь к папке, в которой будет хранится почта от виртуальных ящиков, virtual_mailbox_maps - путь к файлу, в котором перечислены все почтовые ящики, а три следующих директивы указывают идентификатор и группу пользователя, который будет управлять папкой с почтой.
Осталось создать файл с виртуальными почтовыми ящиками. Каждая запись этого файла состоит из двух полей: имени пользователя в формате имя@домен и пути к файлу, в который будет складываться его почта, относительно папки из virtual_mailbox_base. Например, давайте создадим три почтовых ящика:
sudo vi /etc/postfix/vmaps
Чтобы убедится, что всё читается используйте команду postmap с опцией -q. Например:
postmap -q admin@vps.losst.pro hash:/etc/postfix/vmaps
Утилита должна вывести значение пути к файлу для этого пользователя. В примере с файлом это не очень актуально, но когда вы будете настраивать получение виртуальных пользователей из базы данных MySQL, это вам понадобится.
7. Тестирование виртуальных ящиков
Когда всё будет настроено не забудьте перезапустить почтовый сервер командой:
sudo systemctl restart postfix
Затем можно отправить себе письмо с помощью той же утилиты mail:
echo "Test mail" | mail -s "Test mail" admin@vps.losst.pro
Если всё хорошо, письмо должно лежать в файле /home/vmail/vps.losst.pro/admin:
cat /home/vmail/vps.losst.pro/admin
Если же его нет, посмотрите не вернулось ли оно отправителю, выполнив mail без параметров. Если вернулось, то там будет указана причина почему. Ещё можно посмотреть лог отправки писем в /var/log/mail.log. Одной из причин того, что письма не приходят может быть то, что вы неверно выставили права на папку /home/vmail или же забыли убрать виртуальный домен из mydestination.
8. Настройка Dovecot
Почтовый сервер вряд-ли обойдется без возможности отправки почты по SMTP. Поддержка этого протокола уже есть в Postfix, но по умолчанию там нет никакой авторизации. Для добавления поддержки авторизации следует использовать Dovecot. Как бонус вы получите возможность просматривать ваши письма по протоколам POP3 и IMAP. Сначала надо установить сам сервис Dovecot:
sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
Поскольку для получения почты по IMAP будет использоваться Dovecot, то и для доставки почты в почтовые ящики теперь тоже следует использовать Dovecot. Поэтому сначала надо указать где будут хранится почтовые ящики и в каком формате. Для этого откройте файл /etc/dovecot/conf.d/10-mail.conf и измените значение параметра mail_location на следующее:
sudo vi /etc/dovecot/conf.d/10-mail.conf
Мы будем использовать ту же папку что и раньше, только уже другой программой. Здесь %d - означает домен, а %n - имя пользователя. Далее надо настроить какие сервисы будут использоваться. В файле /etc/dovecot/conf.d/10-master.conf надо расскомментировать настройки для таких сервисов:
- imaps - получение почты по протоколу IMAP с поддержкой SSL;
- pop3s - получение почты по протоколу POP3 с поддержкой SSL;
sudo vi /etc/dovecot/conf.d/10-master.conf
Найдите эти секции и приведите их к такому же виду. Далее надо включить протокол LMTP, он будет использоваться Postfix для доставки писем в почтовые ящики.
Ищите секцию service lmtp и приведите её к такому виду. Путь /var/spool/postfix/private/dovecot-lmtp - это сокет, на котором сервис будет ожидать подключения. Позже нам надо будет использовать его в конфигурации Postfix. И осталось настроить ещё один сокет для авторизации по SMTP:
В файле /etc/dovecot/conf.d/10-auth.conf надо включить метод авторизации plain login:
sudo vi /etc/dovecot/conf.d/10-auth.conf
Далее пролистайте в самый низ файла и закомментируйте такую строчку:
Это надо чтобы отключить использование системных пользователей для авторизации в Dovecot. Вместо этого мы будем использовать файл со списком своих пользователей. Поэтому расскоментируйте такую строчку:
Дальше настраиваем способ получения пользователей. Для этого откройте файл /etc/dovecot/conf.d/auth-passwdfile.conf.ext и приведите его к такому виду:
sudo vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext
Здесь мы указываем, что пароли пользователей будут хранится в файле /etc/dovecot/users открытым текстом. Осталось создать этот файл:
sudo vi /etc/dovecot/users
С Dovecot всё. Сертификаты SSL, настраивать не обязательно, так как во время установки программы генерируются самоподписные и на первое время их хватит.
9. Настройка Postfix для Dovecot
Поскольку теперь для доставки писем в почтовые ящики и для авторизации при отправке писем по SMTP мы будем использовать Dovecot, надо поменять несколько строк в /etc/postfix/main.cf
Здесь private/auth - это ссылка на сокет в /var/spool/postfix, который мы создали в секции smtp-auth при конфигурации dovecot. Затем закоментируйте строки:
И вместо них добавьте:
virtual_transport = lmtp:unix:private/dovecot-lmtp
Далее откройте файл /etc/postfix/master.cf и раскомментируйте такую строчку:
Всё, осталось перезапустить Postfix и Dovecot:
sudo systemctl restart postfix
sudo systemctl restart dovecot
Не забудьте удалить старый почтовый ящик:
sudo rm /home/vmail/vps.losst.pro/admin
10. Тестирование доставки почты
Первым делом надо проверить доставляется ли почта в новый почтовый ящик. Для этого можно отправить тестовое письмо на admin@vps.losst.pro:
echo "Test mail" | mail -s "Test mail" admin@vps.losst.pro
После этого в папке /home/vmail/vps.losst.pro/admin/new/ должно появится новое письмо:
Если письма не появилось смотрите лог postfix:
tail -f /var/log/mail.log
У Dovecot тоже есть лог, но его надо включить. Откройте файл /etc/dovecot/conf.d/10-logging.conf и исправьте там такие строчки:
sudo vi /etc/dovecot/conf.d/10-logging.conf
Первая указывает путь к логу, а вторая включает отображение подробностей о неудачных попытках авторизации. Посмотрев содержимое логов вы сможете разобраться в чём была проблема с отправкой почты и решить её.
11. Настройка брандмауэра
Прежде чем вы сможете получить доступ к почтовому серверу из сети интернет, надо открыть несколько портов. Сначала POP3 и POP3S:
sudo ufw allow 110
sudo ufw allow 995
Потом IMAP и IMAPS:
sudo ufw allow 143
sudo ufw allow 993
А затем SMTP:
sudo ufw allow 25
sudo ufw allow 465
sudo ufw allow 587
Установка Postfix Dovecot завершена, можно переходить к тестированию.
12. Тестирование получения почты
Для получения почты по POP3 в этой статье я буду использовать клиент claws-mail. Для его на рабочем компьютере выполните:
sudo apt install claws-mail
После запуска надо будет пройти несколько шагов настройки. Сначала настройте POP3 сервер для получения почты:
Затем настройте SMTP сервер для отправки почты:
После этого вы увидите все свои письма в программе:
Выводы
В этой статье мы рассмотрели как выполняется установка Postfix Ubuntu 20.04, а также как установить и настроить Dovecot. На первый взгляд, все может показаться очень сложным, но если разобраться, то установка и настройка Postfix Dovecot вполне выполнима. Дальше вы можете установить Roundcube и пользоваться почтой. Если у вас остались вопросы, спрашивайте в комментариях!
Кто-то попробовал этот рецепт? пошло?
Сам пробую настроить по этой инструкции... стоит Ubuntu 16.04
Сразу нашел ошибку. В разделе "Настройка баз данных" указано ввести
$ sudo mysql -u root
У меня это не работает!!! Выдает:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Сработало вот что:
$ sudo mysql -u root -p
далее спросила пароль у пустила в командную строку
>mysql
идем дальше...
у автора предполагется что у пользователя mysql root нет пароля. Мне кажется, как зайти в консоль mysql вопрос немного не из области темы статьи.
Следующая ошибка на 3 пункта ниже...
Около часа потратил на нее!!! Эх, попадись мне сейчас автор...
В статье указано ввести:
> CREATE TABLE `Domains_tbl` ( `DomainId` INT NOT NULL AUTO_INCREMENT , `DomainName` VARCHAR(50) NOT NULL , PRIMARY KEY (`DomainId`)) ENGINE = InnoDB;
Работает только без апострофов!!! И последнюю директиву ENGINE=InnoDB мой MySQL вообще не понимает!!! Сработало вот что:
> CREATE TABLE Domains_tbl (DomainId INT NOT NULL AUTO_INCREMENT , DomainName VARCHAR(50) NOT NULL , PRIMARY KEY (DomainId));
Без апострофов и без энджин!
идем дальше...
Далее в разделе "Создание пользователей" указано ввести
> INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT('пароль1', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'losst@losst.pro');
что я только не пробовал, выдает следующее:
ERROR 1406 (22001): Data too long for column 'password' at row 1
ВСЁ! Приплыли! Я не могу пройти дальше!!!!
АВТОР СТАТЬИ - НА ПОМОЩЬ!!!!
Zimbra Collaboration Open Source, https://www.zimbra.com/downloads. Оставь это мазохистам 🙂
да кстати, тоже зашёл посмотреть как дела обстоят у postfix и dovecot, видимо буду устанавливать и запускать "zimbra"! Кажется проще эксплуатация!
ALTER TABLE Users_tbl MODIFY password VARCHAR(1000) NOT NULL;
ВНИМАНИЕ ВСЕМ!!! Весь этот рецепт по настройке почты не работает!!! Не тратьте свое время на попытки настроить почту по этой статье!!! УДАЛИТЕ ЭТУ СТАТЬЮ С САЙТА, НЕ ПОЗОРЬТЕСЬ!!!
Вы спотыкаетесь на базовых вещах. Мне кажется, прежде чем кричать тут капсом и ставить много восклицательных знаков, вам бы следовало почитать основы, хотя бы по Mysql.
Вы считаете статья написана на отлично? Первые же базовые вещи НЕ РАБОТАЮТ! Да ведь и это больше похоже на инструкцию по настройке, а не на статью по основным понятиям принципа настройки почты в Убунту. Эта инструкция - НЕ РАБОТАЕТ!!! В печь её!!!
Если у Вас что-то не получается "с разбегу", то не стоит сразу тыкать в автора. Он старался!
Лучше погуглить ошибки, которые возникают. Например с апострофами таки да, надо вникать где апостроф надо ставить, а где кавычку =)
И еще мысля на заметку: Если инструкция написана, значит как минимум у автора она сработала. Как максимум она сработала у большинства воспользовавшегося ею. Так что сперва стоит поискать ошибки в себе, прежде чем тыкать грязным пальцем во всех окружающих и обвинять их в том, что этот мир не так устроен, как хотелось бы =)
Не работает эта инфтрукция. Не авторизуется пользователь в довекоте так как поле в таблице пароле слишком маленькое и оно режится
Спасибо за совет, я таки авторизовался в довекоте 🙂
измените скрипт создания таблицы
CREATE TABLE `Users_tbl` (
`UserId` INT NOT NULL AUTO_INCREMENT,
`DomainId` INT NOT NULL,
`password` VARCHAR(254) NOT NULL,
`Email` VARCHAR(100) NOT NULL,
PRIMARY KEY (`UserId`),
UNIQUE KEY `Email` (`Email`),
FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE
) ENGINE = InnoDB;
настраиваю по этому мануалу пока все гладко, есть конечно огрехи, но это больше мои пробелы в той или иной теме... Тем кто не сталкивался с mysql придется отдельно самому поизучать данный вопрос. Если все разжевывать от А до Я это не статья, а книга целая выйдет. Тем кто пытается просто скопипаздить тот будет спотыкаться на каждом шагу. Мозг уже включайте иногда это полезно.
Здравствуйте, а если например, вместо ручного создания таблиц, подключим Postfixadmin, ну и соотвественно к пустой базе, и он создаст свои таблицы, потом в файлах .cf, пропишу свой алгоритм подключения к базе с таблицами как в PA
Автор, у тебя крутой блог, помог уже не раз, хотя свой почтовый сервер возможно делать не буду.
Пишешь простым языком, очень классно, много полезного ничего лишнего, у твоего блога приятный дизайн, а то обычно такие сайты и форумы так сделаны что там читать неудобно. Спасибо.
после
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
Вылетает ошибка
/usr/sbin/postconf: fatal: file /etc/postfix/master.cf: line 127: bad field count
postfix/postfix-script: fatal: cannot execute /usr/sbin/postconf!
???
два пробела перед второй строкой поставьте
Не согласен с большинством отзывов: 1.Если назвался Клизьмой, то будь добр автор уж исправить свои писульки....
фраза а вот вы mysql не знаете, или других "основ" - тут не катит, не уверен не обгоняй! зачем пишешь то что не работает ты ж не Майкрософт!?
Привет! Всем сработало многое, автор пишет круто, но Я застрял на postfix. Честно говоря надо быть чуть профи, чтобы разобраться, что к чему
при вводе команды posfix check вылетает куча ошибок, кроме того не удаётся получить доступ к базу данных, через postmap
шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш
Добрый день настраиваю сервер в локальной сети по вашему гайду/инструкции и он не работает - конкретно проблема в том что клиент локальной сети видит сервер, но не может авторизоваться - неверная пара логин/пароль или что-то в этом духе, да и на самом сервере таже проблема.
Возник такой вопрос - при редактировании конфигов мне нужно все закоментировать и оставить только указанные вами параметры или при внесении ваших настроек, остальное не трогать и все должно работать.
И 2-й вопрос - а мрожно настроить без DNS у меня сервер должен работать в локальной сети не обращаясь в интернет, хотя интернет есть
ДНС должен быть и в локальной сети
Может запись MX не обязательна в локалке
Для создание базы MySql используйте Postfixadmin он сам создает необходимые таблицы баз.По инструкции настраивать не пробовал.Но теоретически последовательность описана правильно.Конечно,огрехи в синтаксисе могут быть в статье.Для успешной настп=ройки надо более-менее знать тему MySql PHP ,ну и принципы работы Postfix Dovecit mYsQL,по отдельности и вместе
Спасибо за статью, всё получилось!
Единственное, пока не разобрался, там есть раздел где конфигурируется аутентификация по разным протоколам. Почему-то не получилось настроить imaps на 993 порту - thunderbird упорно отказывается к нему подключаться, хотя порт слушается.
Получилось, проблема была в роутере - забыл пробросить порт.
У меня вот какой вопрос возник - INSERT в таблицу я понял как сделать, с хешом пароля, а что делать если надо поменять пароль?
Возникает ошибка:
imap-login: Error: SSL: Stacked error: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca: SSL alert number 48
Кто-нибудь сталкивался?
Возникает ошибка
***:~$ sudo postconf –n
postconf: warning: ???n: unknown parameter
***:~$ sudo postconf –m
postconf: warning: ???m: unknown parameter
Здравствуйте, не получается подключиться клиентом к серверу:
dovecot:
imap-login: Info: Disconnected (no auth attempts in 0 secs): user=, rip=xx.xx.xx.xx, lip=xxx.xxx.xxx.xxx, TLS, session=
postfix:
postfix/submission/smtpd[8430]: connect from unknown[xx.xx.xx.xx]
postfix/submission/smtpd[8430]: disconnect from unknown[xx.xx.xx.xx] ehlo=2 starttls=1 quit=1 commands=4
А thunderbird пишет, что сервер скорее всего не поддерживает шифрованные пароли. Я так понимаю, что проблема с сертификатом и его использованием, но что именно?
Приветствую, первый раз настраивал почтовый сервер, нашел в инете эту статью, с первого раза конечно же не получилось, но после нескольких дней танцев с бубном всё удалось. В данной статье есть множество ошибок и недочетов. А может быть просто мне не повезло =)
Поэтому хочу поделится своим опытом с остальными, дабы облегчить им жизнь =)
1. О чем не упомянул автор, если у вас уже установлена MySQL, не нужно ставить mariadb-client mariadb-server. Так как после это у меня начались жуткие глюки, база вообще перестала работать, видать конфликты конфигов, долго пытался их подружить, но безуспешно. Лечится удалением одного из двух. Если у вас стоит mysql и вы еще не начали установку, просто не ставим mariadb.
Команда для установки будет выглядеть так
sudo apt install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql
2. Ошибка при добавлении пользователя в бд
ERROR 1406 (22001): Data too long for column 'password' at row 1
Это конечно запара (опечатка) автора статьи, он указывает длину зашифрованного пароля 100 символов, чего явно не хватает. Владимир предложил 1000 ну это перебор, правильный ответ 254, о чем подсказал Andrei.
Если вы еще не создали табличку то делаем так
CREATE TABLE `Users_tbl` (
`UserId` INT NOT NULL AUTO_INCREMENT,
`DomainId` INT NOT NULL,
`password` VARCHAR(254) NOT NULL,
`Email` VARCHAR(100) NOT NULL,
PRIMARY KEY (`UserId`),
UNIQUE KEY `Email` (`Email`),
FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE
) ENGINE = InnoDB;
Если же она создана (что скорее всего) то лечим ее командой
ALTER TABLE Users_tbl MODIFY password VARCHAR(254) NOT NULL;
После чего добавляем юзеров
3. Ошибки
postconf: warning: ???n: unknown parameter
postconf: warning: ???M: unknown parameter
Возникают после выполнения команд
sudo postconf –n
sudo postconf –M
соответственно
Проблема возникает когда копируешь их и вставляешь в командную строку, лечится вводом данных команд ручками.
4. Ошибка
/usr/sbin/postconf: fatal: file /etc/postfix/master.cf: line 127: bad field count
postfix/postfix-script: fatal: cannot execute /usr/sbin/postconf!
Выше уже отписывался PODMIGOR, как ее исправить, но его совет мне не помог. Проблема в том что dovecot воспринимает команду
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
как разбитую на 2 строки, а должна быть 1. Лечится удалением разделителя строи, чтобы команда была одной строкой.
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
5. После этого все запустилось, но письма не приходили на почту admin@domen.com вообще, а отправленные письма попадали прямиком в спам получателю.
Вопрос со спамом решается так, правим файл /etc/postfix/main.cf
параметр myhostname не должен быть равен всяким поддоменам типа
myhostname = subdomen
или
myhostname = sub.domen.com
или как у автора myhostname = vps
Почтовые сервисы видят разницу между почтой и сервером и сразу в спам
admin@domen.com sub.domen.com
Итог корректный вариант
myhostname = domen.com
После чего письма начали доходить до получателей за пределами сервера
6. У FOPMACEFT возникал вопрос по поводу конфигов, что писать, что коментить. Вот и я закоментил лишнего в файле /etc/postfix/master.cf , так как автор не упоминал о ней.
Эта строка должна быть там обязательно, без нее SMTP не будет работать и сервак не сможет получать письма из вне.
smtp inet n - y - - smtpd
7. Так же нужно открыть порт 25 для SMTP
sudo ufw allow 25
8. Но получать письма я пока так и не смог, почтовики выдавали ошибку типа
The mail system
: unknown user: "admin"
Были и похожие ошибки в логах
postfix Recipient address rejected: User unknown in local recipient table
Короче нет такого пользователя и всё тут, хотя в базе он есть и от него письма доходят.
Лечится правкой файла /etc/postfix/main.cf
Добавляем строки
local_transport = virtual
local_recipient_maps = $virtual_mailbox_maps
9. После последней правки, юзера мы видим, но всё равно писем нет.
В логах увидел такую ошибку
server postfix/trivial-rewrite[26694]: warning: do not list domain domen.com in BOTH mydestination and virtual_mailbox_domains
Собственно дубль домена в mydestination и virtual_mailbox_domains
Правим уже наш любимый файл /etc/postfix/main.cf
Удаляем из параметра mydestination всё что связывает нас с нашим доменом ($myhostname, domen.com)
Остается примерно
mydestination = localhost localhost.localdomain
10. Но письма все равно не приходят, смотрю логи, а там
pipe_command: execvp /usr/libexec/dovecot/deliver: No such file or directory
Проверяю ручками действительно нет такого каталога, а есть он тут
/usr/lib/dovecot/
Правим файл /etc/postfix/master.cf
В последней строке заменяем строку
/usr/libexec/dovecot/deliver
на /usr/lib/dovecot/deliver
11. И что вы думаете работает, а хрен там. Логи ведают нам новую ошибку
postfix/pipe[27452]: 0F59C2C1489: to=, relay=dovecot, delay=0.12, delays=0.09/0/0/0.03, dsn=4.3.0, status=deferred (temporary failure. Command output: Can't open log file /var/log/dovecot.log: Permission denied )
Нет доступа к файлу логов довекота, ну так дадим
chown vmail:vmail dovecot.log
Тестим... Ура! Письма приходят и уходят. Два дня не прошли напрасно =)
Не судите строго, никого не хочу учить, сам только учусь, просто решил поделится своим опытом, может быть кому то будет полезно, а если автор подправит свою статью учитывая мои каменты, я думаю это будет только на пользу читателям.
Спасибо за комментарий!
Здравствуйте. Может подскажете как решить Mozilla Thunderbird:Ваше сообщение было отправлено, но его копия не была помещена в папку Отправленные (Отправленные) из-за ошибок доступа к файлу или сети?
Автору спасибо огромное за материал
Добрый день. Помогите пожалуйста разобраться.
Связка Postfix+PostfixAdmin+Dovecot+MariaDB
службы работают, порты отвечают
почтовым клиентом по imap присоединяюсь
а вот дальше, отправка почты не работает, получение тоже
Ошибка 451 4.3.0 : Temporary lookup Failure.
Вроде как не правильный адрес. Но адрес правильный.
Почта не уходит как внутри сервера так и наружу…
При попытке отправить почту из вне на мой адрес так же проблема
all relevant MX records point to non-existent hosts
Добрый день.
Появилась задача организовать почтовик.
Опыта в Linux мало, решил воспользоваться данной инструкцией.
До 8го пункта все осилил, были некоторые вопросы, нашел ответы в сети.
Например:
После создания списка ящиков пользователей
"
$ sudo vi /etc/postfix/vmaps
admin@vps.losst.pro vps.losst.pro/admin
support@vps.losst.pro vps.losst.pro/support
info@vps.losst.pro vps.losst.pro/info
"
Была ошибка в отсутствии файла "vmaps.db".
Создание файла
$ sudo postmap /etc/postfix/vmaps
Выполнив инструкцию до конца, имеется рад проблем:
1. Лог от dovecot по этим инструкциям не работает.
"
$sudo vi /etc/dovecot/conf.d/10-logging.conf
log_path = /var/log/dovecot.log
auth_verbose = yes
"
, пока не могу понять что делат.
2. Нет доступа к почтовым ящикам, сообщение об ошибке:
"postfix/lmtp[95898]: 5FF3A60A2E: to=, relay=none, delay=55201, delays=55201/0.01/0/0, dsn=4.4.1, status=deferred (connect to server.domain.com[private/dovecot-lmtp]: No such file or directory)"
Хотя на диске по указанному пути они есть.
3. Еще есть вопросы по конфигурационным файлам.
Если у кого есть мысли где посмотреть и ответить на дополнительные вопросы, буду признателен.
Я вот одного не понимаю, почему нельзя было написать статью на примере типа "mypost@mydomain.ru" вместо "mypost@myshit.mydomeain.ru"?!
А какая разница? У меня не было свободного домена второго уровня. А третьего - были.
Вариант нерабочий.Ошибки.Не тратьте время зря.
Вопросы остались,
как сделать DKIM для postfix ?
В статье много ошибок, незначительных. но приходится активно догугливать. Нельзя ли было приложить листинги файлов без критичной инфы?
C Dovecot совсем беда.
надо поменять несколько строк в /etc/postfix/main.cf
smtp_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
ТАМ строк с smtp и smtpd уже хватает, ЧТО ИЗ НИХ НУЖНО ЗАКОММЕНТИРОВАТЬ???
Добрый день!
Норм статья, все работает. Немного подправить надо.
В строке sudo mkdir -p /home/vmail{admin,support,info} ошибка, по логике настройки правильнее указать, sudo mkdir -p /home/vmail/vps.losst.pro/{admin,support,info}
В файле /etc/postfix/vmaps надо в конце / добавить.
admin@vps.losst.pro vps.losst.pro/admin/
support@vps.losst.pro vps.losst.pro/support/
info@vps.losst.pro vps.losst.pro/info/
sudo mkdir -p /home/vmail{admin,support,info}
вроде так должно быть :
sudo mkdir -p /home/vmail/{admin,support,info}
??
Чтобы работало не надо комментировать строки:
#virtual_mailbox_base = /home/vmail
#virtual_mailbox_maps = hash:/etc/postfix/vmaps
#virtual_minimum_uid = 1000
#virtual_uid_maps = static:5000
#virtual_gid_maps = static:5000