Установка Postfix на Ubuntu Server 16.04
Почтовый сервер под Ubuntu
Postfix – это программа, способная пересылать и получать сообщения по электронной почте. Она пользуется достаточно большой популярностью у владельцев серверов. По статистике где-то на четверти всех машин установлено данное приложение. Мы покажем вам как поставить и настроить его на сервере Ubuntu 16.04. Для этого вам потребуется самостоятельно настроить вашу машину, а также завести учетную запись с sudo-привилегиями. Кроме того, нужно будет иметь валидное доменное имя.
Приложение получится найти в любом стандартном репозитории Ubuntu. Установка клиента очень простая. Сначала нужно обновить индекс пакетов, после чего приложение можно инсталлировать. Необходимо передать переменную окружения DEBIAN_PRIORITY=low, которая ответит на опциональные запросы приложения:
sudo apt-get update
sudo DEBIAN_PRIORITY=low apt-get install postfix
Вы увидите вот такие вопросы:
Например, список опций может выглядеть вот так:
General type of mail configuration?: Internet Site
System mail name: example.com
Root and postmaster mail recipient: abc
Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
Force synchronous updates on mail queue?: No
Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Mailbox size limit: 0
Local address extension character: +
Internet protocols to use: all
Если возникнет необходимость поменять параметры, нужно набрать:
sudo dpkg-reconfigure postfix
Все строчки будут принимать значения, которые вы задали ранее.
Этот раздел поможет вам настроить те параметры, которые не встречались на начальном этапе. Начать нужно с настройки почтового ящика. Мы будем применять формат maildir. Он объединяет сообщения в отдельные файлы. В зависимости от действий пользователя, они перемещаются между папками. Если нужно объединить их в один файл, выберите формат mbox. Значение Maildir/ устанавливается переменной home_mailbox. Таким образом вы создадите структуру папок с этим именем в домашнем каталоге юзера. Если нужно запрашивать и устанавливать параметры настроек, используйте команду postconf. Наберите код, чтобы настроить home_mailbox:
sudo postconf -e 'home_mailbox= Maildir/'
После этого вам потребуется задать местоположение таблицы virtual_alias_maps. Она нужна для соединения с учетками системы Linux произвольных записей электронной почты. В каталоге /etc/postfix/virtual нужно создать таблицу:
sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Откройте выше созданную табличку в редакторе с помощью кода:
sudo nano /etc/postfix/virtual
Она устроена достаточно просто: слева располагаются адреса, способные получать почту, а через пробел указываются пользователи системы, которым предстоит выступать в роли получателей почты. Как это выглядит на практике? Например, вы хотите сделать так, чтобы системный пользователь abc имел возможность получать почту по адресу contact@example.com. Для этого наберите:
contact@example.com abc
Таким образом у вас получится связать все адреса с пользователями системы. Чтобы изменения вступили в силу, сохраните их закрыв файл. Если нужно прописать новые параметры в систему, напишите код:
sudo postmap /etc/postfix/virtual
Далее нам потребуется перезапуск Postfix:
sudo systemctl restart postfix
Если вы используете брандмауэр UFW, то вам потребуется открыть Postfix порт. Ему нужно разрешить подключение к нашему сервису:
sudo ufw allow Postfix
Далее требуется перенастроить почтовый клиент, обрабатывающий Postfix почту.
Перед установкой клиента необходимо установить переменную окружения MAIL. Она будет проверяться клиентом для определения места, где сохраняется входящая почта. Переменную нужно установить в нескольких разных местах, чтобы она не учитывала способ подключения к аккаунту. Ее нужно добавить в каталог /etc/bash.bashrc, а также в файл /etc/profile.d. Чтобы это делать, наберите код:
echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Если вы хотите, чтобы переменная считывалась в текущей сессии, наберите:
source /etc/profile.d/mail.sh
Для взаимодействия с входящей почтой, вам нужно поставить пакет s-nail. Что это такое? Пакет представляет собой BSD xmail-клиент, имеющий большое количество возможностей, а также поддержку Maildir. GNU версия mail отличается несколькими ограничениями, вроде необходимости всегда сохранять почту в формате mbox. Для установки s-mail нужно набрать следующий код:
sudo apt-get install s-nail
Вам предстоит отредактировать несколько параметров. Сначала откройте /etc/s-nail.rc:
sudo nano /etc/s-nail.rc
Нам нужно добавить в конец файла несколько строк:
. . .
set emptystart
set folder=Maildir
set record=+sent
Что это нам даст? Мы сможем открывать клиент, даже если в почтовом ящике отсутствуют письма. Кроме того, мы установим папку Maildir в переменной folder для ее использования при создании m-box-файла, в котором хранятся отправленные сообщения. Чтобы изменения применились, файл требуется сохранить и закрыть.
Если вы хотите создать структуру Maildir в домашнем каталоге, то самый простой способ - прислать письмо самому себе. Для этого необходима команда mail. Отправленный файл станет доступным, только если создать Maildir. Поэтому вам предстоит закрыть каталог для записи с помощью флага Snorecord. Вам нужно будет отправить сообщение, предварительно изменив abc на имя вашего системного пользователя. Это можно сделать с помощью:
echo 'init' | mail -s 'init' -Snorecord abc
Данная команда должна вернуть такое сообщение:
Can't canonicalize "/home/abc/Maildir"
Не удивляйтесь, при первой отправке сообщения программа всегда выдает такое уведомление. Вам нужно убедиться, что ранее создан был каталог ~/Maildir. Если нет, то сделайте это с помощью:
ls -R ~/Maildir
На экране высветится структура папок, а также сообщение в ~/Maildir/new:
/home/abc/Maildir/:
cur new tmp
/home/abc/Maildir/cur:
/home/abc/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com
/home/abc/Maildir/tmp:
Для проверки почты, вам нужно набрать:
s-nail version v14.8.6. Type ? for help.
"/home/abc/Maildir": 1 message 1 new
>N 1 abc@example.com Wed Dec 31 19:00 14/369 init
Если хотите прочитать сообщение, то нажмите Enter. Вы увидите вот такое:
[-- Message 1 -- 14 lines, 369 bytes --]:
From abc@example.com Wed Dec 31 19:00:00 1969
Date: Fri, 13 May 2016 18:07:49 -0400
To: abc@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: abc@example.com
init
К списку сообщений можно вернуться, нажав кнопку h:
h
s-nail version v14.8.6. Type ? for help.
"/home/abc/Maildir": 1 message 1 new
>R 1 abc@example.com Wed Dec 31 19:00 14/369 init
Кроме этой команды, вы можете использовать d для удаления сообщения или q – для возврата в каталог.
Для этого нужно набрать сообщение в текстовом редакторе, например, такое:
nano ~/test_message Hello,
This is a test. Please confirm receipt!
Используйте команду cat, чтобы передать процессу mail сообщение. По умолчанию, отправителем сообщения будет нынешний пользователь системы. Вы сможете внести изменения в поле from используя флаг –r:
cat ~/test_message | mail -s 'Test email subject line' -r from_field_account user@email.com
Здесь мы использовали такие опции:
Отправленные сообщения вы сможете смотреть с помощью почтового клиента. Его нужно запустить в интерактивном режиме с помощью:
Теперь для просмотра отосланного сообщения наберите:
file +sent
Письмами можно управлять с помощью таких же команд, как и для входящих сообщений. Теперь, если вы все сделали правильно, ваш почтовый сервер Postfix будет настроен на сервере Ubuntu 16.04.
Опубликовано: Март 27, 2017