20.4 Настройка почтового сервера для обслуживания всего домена во FreeBSD


Изначально, Вы можете отправлять почту ``во внешний мир'' если у Вас правильно составлен файл /etc/resolv.conf или у Вас запущен свой сервер имен. Если Вы хотите, чтобы почта, предназначенная для хоста в Вашем домене, доставлялась по назначению, есть два пути:


Запустите свой собственный сервер DNS, тем самым организовав собственный домен, например, FreeBSD.org

Удостоверьтесь, что Вы получаете почту, предназначенную для Вашего хоста. То есть, почта должна приходить на доменное имя Вашей машины. Например, example.FreeBSD.org.

В любом случае, чтобы почта всегда приходила на Ваш хост, Вам нужно иметь постоянный (статический) IP адрес (а не, например, PPP-соединение). Если Вы находитесь за брандмауэром, то последний должен пропускать SMTP-пакеты.

Если Вы хотите, чтобы почта приходила непосредственно на Ваш хост:

Удостоверьтесь, что запись MX в DNS соответствует IP адресу Вашего хоста хоста.

Или для Вашего хоста вообще отсутствует MX-запись.

Выполнение любого из перечисленных условий обеспечит доставку почты для Вашего хоста.

Попробуйте это:
# hostname
example.FreeBSD.org
# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX

Если Вы это видите, то можно без проблем посылать почту на <yourlogin@example.FreeBSD.org>.

Однако, если Вы видите это:
# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org

то вся почта, посланная на example.FreeBSD.org будет собираться на hub (для того же пользователя), вместо того, чтобы быть отосланной непосредственно на Ваш хост.

Эта информация обрабатывается Вашим DNS сервером. Соответствующая запись DNS, указывающая, через какой хост будет проходить Ваша почта, называется MX (от англ. Mail eXchanger). Если для хоста отсутствует такая запись, почта будет прихоть прямо на этот хост.

Допустим, что запись MX для хоста freefall.FreeBSD.org в какой-то момент выглядела так:
freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.com

Вы видите, что для хоста freefall существуют несколько MX-записей. Запись с наименьшим номером соответствует хосту, на который в конце-концов попадет почта для freefall; другие будут временно сохранять почту для freefall, если тот по какой-либо причине недоступен.

Чтобы альтернативные MX-хосты использовались наиболее эффективно, они должны быть независимо подключены к Интернет. Ваш провайдер (или дружественный сайт) скорее всего без проблем сможет оказать подобные услуги.
20.4.2 Почта для Вашего домена

Вам может понадобиться создать почтовый сервер, который будет ``перехватывать'' почту, адресованную рабочим станциям в Вашем домене. Затем пользователи будут забирать почту либо непосредственно с сервера, либо по протоколам POP или IMAP.

Чтобы облегчить себе (и другим) жизнь, создайте на обеих машинах аккаунты с одинаковыми именами пользователей, например, с помощью команды adduser.

Сервер, который Вы будете использовать в качестве почтового, должен быть объявлен таковым для каждой машины в домене. Вот фрагмент примерной конфигурации:
example.FreeBSD.org A 204.216.27.XX ; Рабочая станция
MX 10 hub.FreeBSD.org ; Почтовый шлюз

Таким образом, вся корреспонденция, адресованная рабочей станции, будет обрабатываться Вашим почтовым сервером, независимо от того, что указано в A-записи.

Все это можно реализовать только в том случае, если Вы используете сервер DNS. Если Вы по каким-либо причинам не имеете возможности установить свой собственный сервер имен, Вам нужно поговорить с Вашим провайдером услуг Интернет о предоставлении сервиса DNS для Вас.

Если Вы хотите поддерживать несколько виртуальных почтовых серверов, Вам может пригодиться следующая информация. Допустим, что Ваш клиент зарезервировал домен, например, customer1.org, и Вам требуется, чтобы почта, предназначенная для customer1.org приходила на Ваш хост, например, mail.myhost.com. В таком случае, DNS должен выглядеть так:
customer1.org MX 10 mail.myhost.com

Заметьте, что если Вам требуется только получать почту для домена, соответствующая A-запись не нужна.

Note: Помните, что если Вы попытаетесь каким-либо образом обратиться к хосту customer1.org, у Вас вряд ли что-либо получится, если нет A-записи для этого хоста.

Последнее, что Вы должны сделать - это сказать программе sendmail, для каких доменов и/или хостов она должна принимать почту. Это можно сделать несколькими способами:

Добавьте названия этих хостов в файл /etc/sendmail.cw, если Вы используете FEATURE(use_cw_file). Если у Вас sendmail версии 8.10 или выше, то можно отредактировать файл /etc/mail/local-host-names.

Добавьте строку Cwyour.host.com в файл /etc/sendmail.cf или /etc/mail/sendmail.cf (если у Вас sendmail версии 8.10 или более поздней).

Обновлено: 12.03.2015