В FreeBSD по умолчанию программой передачи почты (Mail Transfer Agent, MTA) является sendmail(8). Работа sendmail заключается в приеме почты от почтовых программ пользователей (Mail User Agents, MUA) и отправке ее на соответствующий адрес, в соответствии с имеющимися настройками. sendmail может также принимать входящие соединения по сети и доставлять почту в локальные почтовые ящики или перенаправлять их другой программе.
sendmail использует следующие файлы настройки:
Имя файла | Назначение |
---|---|
/etc/mail/access | Файл базы данных доступа sendmail |
/etc/mail/aliases | Синонимы почтовых ящиков |
/etc/mail/local-host-names | Список хостов, для которых sendmail принимает почту |
/etc/mail/mailer.conf | Настройки почтовой программы |
/etc/mail/mailertable | Таблица доставки почтовой программы |
/etc/mail/sendmail.cf | Основной файл настройки sendmail |
/etc/mail/virtusertable | Таблицы виртуальных пользователей и доменов |
База данных доступа определяет список хостов или IP адресов, имеющих доступ к
локальному почтовому серверу, а также тип предоставляемого доступа. Хосты могут быть
перечислены как OK
, REJECT
, RELAY
или просто переданы процедуре обработки ошибок sendmail с заданным сообщением об ошибке. Хостам, перечисленным с
параметром по умолчанию OK
, разрешено отправлять почты на
этот хост, если адрес назначения почты принадлежит локальной машине. Все почтовые
соединения от хостов, перечисленных с параметром REJECT
,
отбрасываются. Для хостов, перечисленных с параметром RELAY
,
разрешена передача через этот сервер почты с любым адресом назначения.
Пример 24-1. Настройка базы данных доступа sendmail
cyberspammer.com 550 We do not accept mail from spammers FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY
В этом примере приведены пять записей. К отправителям, чей адрес соответствует записи в левой части таблицы, применяется правило записанное в правой части таблицы. В первых двух примерах код ошибки будет передан процедуре обработке ошибок sendmail. В этом случае на удаленном хосте будет получено соответствующее сообщение. В следующем примере почта отбрасывается почта от определенного хоста, another.source.of.spam. В четвертом примере разрешается прием почты от хоста okay.cyberspammer.com, имя которого более точно совпадает с этой записью, чем с cyberspammer.com в примере выше. При более точном совпадении правила перезаписываются. В последнем примере разрешается пересылка почты от хостов с IP адресами, начинающимися с 128.32. Эти хосты смогут отправлять почту через этот почтовый сервер для других почтовых серверов.
После изменения этого файла для обновления базы данных вам потребуется запустить make в каталоге /etc/mail/.
База данных синонимов содержит список виртуальных почтовых ящиков, принадлежащих другим пользователям, файлам, программам, или другим синонимам. Вот несколько примеров, которые могут быть использованы для /etc/mail/aliases:
Пример 24-2. Mail Aliases
root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"
Формат файла прост; имя почтового ящика слева от двоеточия сопоставляется
назначению(ям) справа. В первом примере производится простое сопоставление почтового
ящика root почтовому ящику localuser,
для которого затем опять будет произведен поиск в базе данных синонимов. Если совпадений
не обнаружится, сообщение будет доставлено локальному пользователю localuser. В следующем примере приведен список рассылки. Почта на
адрес ftp-bugs рассылается на три локальных почтовых ящика: joe, eric и paul. Обратите внимание, что удалённый почтовый ящик может быть
задан в виде <user@example.com>
. В следующем примере
показана запись почты в файл, в данном случае /dev/null. И в
последнем примере показано отправление почты программе, в данном случае почтовое
сообщение переправляется через канал UNIX® на
стандартный вход /usr/local/bin/procmail.
После обновления этого файла вам потребуется запустить make в каталоге /etc/mail/ для обновления базы данных.
В этом файле находится список имен хостов, принимаемых программой sendmail(8) в качестве локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту. Например, если этот почтовый сервер должен принимать почту для домена example.com и хоста mail.example.com, его файл local-host-names может выглядеть примерно так:
example.com mail.example.com
После обновления этого файла необходимо перезапустить sendmail(8), чтобы он смог перечитать изменения.
Основной файл настройки sendmail, sendmail.cf управляет общим поведением sendmail, включая все, от перезаписи почтовых адресов до отправки удаленным серверам сообщений об отказе от пересылки почты. Конечно, файл настройки с таким многообразием возможностей очень сложен и подробное его описание выходит за рамки данного раздела. К счастью, для стандартных почтовых серверов изменять этот файл придется не часто.
Основной файл настройки sendmail может быть собран из макроса m4(1), определяющего возможности и поведение sendmail. Подробнее этот процесс описан в файле /usr/src/contrib/sendmail/cf/README.
Для применения изменений после правки файла необходимо перезапустить sendmail.
Файл virtusertable сопоставляет виртуальные почтовые домены и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными, удаленными, синонимами, определенными в /etc/mail/aliases, или файлами.
Пример 24-3. Пример таблицы виртуального домена
root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe
В примере выше мы видим сопоставление адресов для домена example.com. Почта обрабатывается по первому совпадению с записью в
этом файле. Первая запись сопоставляет адрес <root@example.com>
локальному почтовому ящику root. Вторая запись сопоставляет <postmaster@example.com>
локальному почтовому ящику postmaster на хосте noc.example.net.
Наконец, до этого момента адрес в домене example.com не совпал ни
с одним из предыдущих, будет применено последнее сопоставление, в которому соответствует
всякое другое почтовое сообщение, отправленное на любой адрес в example.com. Это сообщение будет доставлено в локальный почтовый ящик
joe.
Пред. | Начало | След. |
Использование электронной почты | Уровень выше | Установка другой почтовой программы |
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.