Postfix — популярный почтовый агент (MTA) с открытым исходным кодом, который можно использовать для маршрутизации и доставки почты в системе Linux. Согласно оценкам, примерно 25% публичных почтовых серверов в Интернете используют Postfix.
В этом обучающем модуле мы научим вас быстро развертывать Postfix на сервере Ubuntu 18.04.
Для выполнения заданий этого обучающего модуля вам потребуется доступ к пользователю без прав root с привилегиями sudo
. Для создания такого пользователя следуйте указаниям руководства «Начальная настройка сервера Ubuntu 18.04».
Для правильной настройки Postfix вам потребуется полностью квалифицированное доменное имя, указывающее на сервер Ubuntu 18.04. Полезную информацию по настройке доменного имени с помощью DigitalOcean можно найти в этом руководстве. Если вы планируете принимать почту, вам также потребуется запись MX, указывающая на ваш почтовый сервер.
Для целей этого обучающего модуля мы предположим, что вы настраиваете хост с FQDN mail.example.com
.
Postfix входит в репозитории Ubuntu по умолчанию, поэтому установку выполнить очень просто.
Вначале обновите кэш локального пакета apt
, а затем установите программное обеспечение. Мы добавим в команду установки переменную среды DEBIAN_PRIORITY=low
, чтобы включить несколько дополнительных диалогов:
Используйте следующую информацию, чтобы правильно ввести данные для своей среды:
mail.example.com
, но мы будем использовать для системной почты example.com
, так что для имени пользователя user1
в Postfix будет использоваться адрес user1@example.com
.root@
и postmaster@
. Используйте для этой цели свою основную учетную запись. В нашем случае это sammy.Итак, для целей этого обучающего модуля мы используем следующие настройки параметров:
Если вам потребуется изменить эти настройки, используйте следующую команду:
Для параметров будут указаны заданные ранее значения.
Завершив настройку параметров, мы можем еще немного изменить конфигурацию, чтобы настроить систему желаемым образом.
Теперь мы настроим некоторые параметры, для которых не выводились диалоги.
Вначале мы зададим почтовый ящик. Мы используем формат Maildir, который разделяет сообщения на отдельные файлы, перемещаемые между каталогами в зависимости от действий пользователя. Также можно использовать формат mbox (здесь мы не будем говорить о нем), хранящий все сообщения в одном файле.
Мы зададим для переменной home_mailbox
значение Maildir/
, в результате чего в домашнем каталоге пользователя будет создана структура каталогов с этим именем. Команду postconf
можно использовать для запроса или установки параметров конфигурации. Настройте home_mailbox
с помощью следующей команды:
Теперь мы можем задать расположение таблицы virtual_alias_maps
. Эта таблица сопоставляет произвольные учетные записи электронной почты с системными учетными записями Linux. Мы создадим эту таблицу по адресу /etc/postfix/virtual
. Для этого мы снова можем использовать команду postconf
:
Теперь мы можем настроить файл виртуальных карт. Откройте в файл в своем текстовом редакторе:
Таблица карт виртуальных псевдонимов имеет очень простой формат. Слева перечисляются все адреса, для которых вы хотите принимать электронную почту. Затем идет разделенный пробелами перечень пользователей Linux, которым вы хотите доставлять эту почту.
Например, если вы хотите принимать электронную почту на адреса contact@example.com
и admin@example.com
и доставлять ее пользователю Linux с именем sammy
, вы можете настроить файл следующим образом:
contact@example.com sammy
admin@example.com sammy
После сопоставления всех почтовых адресов с соответствующими учетными записями сервера вы можете сохранить и закрыть файл.
Мы можем применить сопоставление с помощью следующей команды:
Перезапустите процесс Postfix, чтобы убедиться в применении всех наших изменений:
Если вы используете брандмауэр UFW, настроенный в соответствии с руководством по начальной настройке сервера, нам потребуется добавить исключение для Postfix.
Вы можете разрешить подключение к службе с помощью следующей команды:
Серверный компонент Postfix установлен и готов к работе. Теперь мы настроим клиент, который будет принимать почту, которую будет обрабатывать Postfix.
Перед установкой клиента нужно убедиться, что переменная среда MAIL
задана правильно. Клиент использует эту переменную для определения места, где он будет искать почту пользователя.
Чтобы переменная существовала вне зависимости от способа доступа к учетной записи (через ssh
, su
, su -
, sudo
и т. д.), ее нужно задать в нескольких местах. Мы добавим ее в /etc/bash.bashrc
и в файл в каталоге /etc/profile.d
, чтобы она была настроена для каждого пользователя.
Чтобы добавить переменную в эти файлы, введите:
Чтобы прочитать переменную для текущего сеанса, вы можете использовать в качестве источника файл /etc/profile.d/mail.sh
:
Для взаимодействия с доставляемой почтой мы установим пакет s-nail
. Это вариант клиента BSD xmail
, который имеет много функций, может правильно обрабатывать формат Maildir и в основном обладает обратной совместимостью. Версия mail
для GNU имеет несколько ограничений, в частности, прочитанная почта всегда сохраняется в формате mbox вне зависимости от исходного формата.
Для установки пакета s-nail
введите:
Нам нужно изменить несколько параметров. Откройте файл /etc/s-nail.rc
в своем редакторе:
Добавьте в конце файла следующие опции:
. . .
set emptystart
set folder=Maildir
set record=+sent
Так клиент будет открываться даже при пустом почтовом ящике. Кроме того каталог Maildir
будет задан во внутренней переменной folder
, которая будет использоваться для создания файла sent
mbox для хранения отправленных писем.
Сохраните файл и закройте его после завершения.
Теперь мы можем протестировать клиент.
Самый простой способ создания структуры Maildir в домашнем каталоге — отправить себе электронное письмо. Для этого мы можем использовать команду s-nail.
Поскольку файл sent
будет доступен только после создания Maildir, нам нужно отключить запись в него для нашего первого письма. Опция -Snorecord
поможет нам в этом.
Для отправки письма добавьте строку в команду s-nail
. Измените команду, чтобы сделать получателем вашего пользователя Linux:
Вы можете получить следующий ответ:
OutputCan't canonicalize "/home/sammy/Maildir"
Это нормально, и такой ответ может появиться только при отправке первого сообщения. Мы можем еще раз проверить создание каталога, выполнив поиск нашего каталога ~/Maildir
:
Вы должны увидеть созданную структуру каталогов и новое сообщение в каталоге ~/Maildir/new
:
Output/home/sammy/Maildir/:
cur new tmp
/home/sammy/Maildir/cur:
/home/sammy/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com
/home/sammy/Maildir/tmp:
Похоже наше письмо доставлено.
Используйте клиент для проверки почты:
Вы должны увидеть новое сообщение:
Outputs-nail version v14.8.6. Type ? for help.
"/home/sammy/Maildir": 1 message 1 new
>N 1 sammy@example.com Wed Dec 31 19:00 14/369 init
Просто нажмите ENTER
для вывода этого сообщения:
Output[-- Message 1 -- 14 lines, 369 bytes --]:
From sammy@example.com Wed Dec 31 19:00:00 1969
Date: Fri, 13 May 2016 18:07:49 -0400
To: sammy@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: sammy@example.com
init
Вы можете веернуться к списку сообщений, введя h
и нажав ENTER
:
Outputs-nail version v14.8.6. Type ? for help.
"/home/sammy/Maildir": 1 message 1 new
>R 1 sammy@example.com Wed Dec 31 19:00 14/369 init
Поскольку это сообщение не очень полезно, мы можем удалить его, введя d
и нажав ENTER
:
Для выхода и возврата в терминал введите q
и нажмите ENTER
:
Вы можете протестировать функцию отправки писем, набрав сообщение в текстовом редакторе:
Введите текст, которы вы хотите отправить по почте:
Hello,
This is a test. Please confirm receipt!
Мы можем использовать команду cat
, чтобы направить сообщение в процесс s-nail
. По умолчанию сообщение будет отправлено от имени вашего пользователя Linux. При желании вы можете изменить поле «From» с помощью атрибута -r
:
Приведенные выше опции:
-s
: строка темы письма-r
: изменение поля «From» письма. По умолчанию в этом поле указан текущий пользователь Linux. Опция -r
позволяет задать другого отправителя.user@email.com
: учетная запись получателя письма. Измените этот адрес на адрес учетной записи, к которому у вас есть доступ .Вы можете просмотреть отправленные сообщения в клиенте s-nail
. Запустите интерактивный клиент еще раз с помощью следующей команды:
После этого откройте список отправленных сообщений с помощью следующей команды:
Вы можете управлять отправленными письмами с помощью тех же команд, которые используются для входящих писем.
Теперь почтовая система Postfix настроена на вашем сервере Ubuntu 18.04. Управление серверами электронной почты — непростая задача для начинающих администраторов, но такая конфигурация обеспечит все базовые функции MTA, которые помогут вам начать работу.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!