Вход
Русский
USD
Цены в иностранной валюте приведены информационно

Установка Postfix на Ubuntu Server 16.04

Почтовый сервер под Ubuntu

Postfix – это программа, способная пересылать и получать сообщения по электронной почте. Она пользуется достаточно большой популярностью у владельцев серверов. По статистике где-то на четверти всех машин установлено данное приложение. Мы покажем вам как поставить и настроить его на сервере Ubuntu 16.04. Для этого вам потребуется самостоятельно настроить вашу машину, а также завести учетную запись с sudo-привилегиями. Кроме того, нужно будет иметь валидное доменное имя.

Установка Postfix

Приложение получится найти в любом стандартном репозитории 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 – это базовый домен, который показывается после @ в поде адреса. По умолчанию имя хоста - mail.example.com, но приставку mail лучше убрать. Это необходимо для того, чтобы пользовательская почта, например, some_user выглядела в итоге как some_user@example.com.
  • Root and postmaster mail recipient. В данном поле нужно прописать аккаунт Linux, который будет служить для получения почты. Имеется ввиду postmaster@ или root@.
  • Other destinations to accept mail for: здесь вы устанавливаете получателей почты, которые будут разрешены программе Postfix. Сюда можно прописать любые домены, расположенные на вашем сервере и за почту которых отвечает данная программа.
  • Force synchronous updates on mail queue? Вам нужно будет выбрать No, если у вас журнальная файловая система.
  • Local networks – это список сетей, данные из которых будут передаваться сервером почты. Значение по умолчанию подойдет в большинстве случаев. Вы можете поменять его, но тогда придется ограничить диапазон сети.
  • Mailbox size limit. Данное поле необходимо для установления ограничения на размер сообщения. Если вы пропишете цифру 0, то все ограничения будут сняты.
  • Local address extension character. Здесь устанавливается символ, необходимый для разделения расширения и обычной части адреса. Он может понадобиться если есть необходимость создать динамические алиасы.
  • Internet protocols to use. Опция необходима для ограничения поддержки версий протокола IP.

Например, список опций может выглядеть вот так:

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

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

Тонкая настройка 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'

Привязка почтовых адресов к аккаунтам Linux

Откройте выше созданную табличку в редакторе с помощью кода:

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:

Управление почтовым клиентом

Для проверки почты, вам нужно набрать:

mail
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

Здесь мы использовали такие опции:

  • тема сообщения это –s;
  • с помощью –r меняется отправитель;
  • мы задали получателя с помощью user@email.com.

Отправленные сообщения вы сможете смотреть с помощью почтового клиента. Его нужно запустить в интерактивном режиме с помощью:

mail

Теперь для просмотра отосланного сообщения наберите:

file +sent

Письмами можно управлять с помощью таких же команд, как и для входящих сообщений. Теперь, если вы все сделали правильно, ваш почтовый сервер Postfix будет настроен на сервере Ubuntu 16.04.

Опубликовано: Март 27, 2017