. Подобные цепочки определений часто используются в Postfix, поэтому, чтобы определить значение переменной, надо проследить его, перемещаясь назад по конфигурационному файлу.
Файл
main.cf
в основном состоит из комментариев, которые содержатся в строках, начинающихся в символа
#
. Комментарии подробно описывают назначение каждой опции, поэтому вы можете достаточно подробно изучить конфигурацию Postfix, просматривая лишь содержимое конфигурационного
файла.
В файле
main.cf
содержатся ссылки на другие файлы. Как и в сервере
sendmail
, некоторые из этих файлов (оканчивающиеся символами . представлены в двоичном формате. Они создаются на базе текстовых файлов с теми же именами, за исключением суффикса
.db
. В процессе использования сервера наиболее часто приходится редактировать файл
aliases
(который преобразуется в файл
aliases.db
). Как и в одноименном файле сервера
sendmail
, в файле
aliases
задаются псевдонимы, используемые при доставке писем. Например, запись
root: amelia
указывает на то, что все письма, адресованные root, должны быть доставлены пользователю
amelia
. Для того чтобы преобразовать текстовый файл
aliases
в двоичный файл
aliases.db
, надо вызвать команду
postalias aliases
, указав перед этим в качестве текущего каталог, в котором содержится файл
aliases
.
После того как вы модифицируете содержимое текстового файла и создадите файл
.db
, пройдет некоторое время перед тем, как Postfix учтет внесенные изменения. Для того чтобы ускорить этот процесс, необходимо задать команду
postfix reload
либо перезапустить Postfix, используя для этого сценарий SysV.
Маскировка адресов
Опция
myorigin
позволяет задать имя, под которым Postfix будет представляться при взаимодействии с другими системами. По умолчанию в качестве значения данной опции задается переменная
$myhostnam
e, которая, в свою очередь, определяет доменное имя компьютера. Конфигурация по умолчанию приемлема во многих случаях, но если вашему компьютеру соответствует несколько имен или если вы хотите вместо имени узла использовать имя домена, вам придется изменить настройку сервера. Для этого надо задать новое значение опции
myorigin
, например:
myorigin = threeroomco.com
При желании вы можете указать в качестве значения опции переменную, например
$mydomain
. По умолчанию значением переменной
$mydomain
является значение из которого исключен компонент, находящийся слева. Например, если переменная
$myhostname
имеет значение
franklin.threeroomco.com
, то значение
$mydomain
будет равно
threeroomco.com
. В файле
main.conf
содержится много закомментированных записей. В некоторых случаях вы можете изменить конфигурацию, выбрав подходящую для вас запись и удалив символ комментариев.
Опция
myorigin
определяет только базовые средства маскировки адресов. Значение данной опции используется лишь в ходе начальных переговоров с удаленным сервером, предусмотренных протоколом SMTP, и для указания доменного имени в поле From:, если соответствующие данные не были включены в это поле программой подготовки писем. Если ваш почтовый сервер выступает в качестве ретранслятора по отношению к другим системам вашего домена, которые, возможно, настроены для включения в заголовок полного адреса, вам потребуется выполнять более сложные действия по маскировке адресов. Предположим, например, что клиентская программа, использующая сервер Postfix для передачи писем, включает в поле From: адрес
ben@client.threeroomco.com
. Предположим также, что вы хотите удалить идентификатор client так, чтобы адрес имел вид
ben@client.threeroomco.com
. Учитывая, что значением переменной
$mydomain
является имя домена
threeroomco.com
, вы можете использовать
для получения требуемого результата следующую запись:
masquerade_domains = $mydomain
Данная опция указывает серверу Postfix на то, что при обработке сообщения должна быть удалена часть доменного имени, не относящаяся к имени домена, указанного посредством переменной
$mydomain
. В результате в поля
From:
и
To:
вместо имени узла, принадлежащего домену
$mydomain
, будет записано имя домена.
Postfix позволяет выполнять еще более сложные действия по маскировке адресов. В частности, вы можете указать Postfix на необходимость изменить содержимое файла базы данных. Для этого используется опция
необходимо включить записи, используемые для преобразования имен. Каждая строка этого файла должна содержать адрес, который может находиться в составе заголовка, и адрес, которым он должен быть заменен. Следующие две строки заменяют имена
client.threeroomco.com
и
localhost
на
threeroomco.com
:
@client.threeroomco.com @threeroomco.com
@localhost @threeroomco.com
Аналогичный подход можно использовать для преобразования пользовательских имен. Например, ваш сервер может выполнять роль посредника между сетями, в которых для представления имен применяются различные форматы. Включив в файл, предназначенный для преобразования, записи, отображающие имя каждого пользователя, вы обеспечите соответствие имен в разных форматах.
После создания файла
sender_canonical
его необходимо преобразовать в двоичный формат посредством команды
postmap sender_canonical
. Чтобы внесенные в файл изменения были учтены сервером Postfix, надо вызвать команду
postfix reload
либо перезапустить сервер.
Выполняя настройку сервера, необходимо ограничиваться минимально допустимым уровнем маскировки адресов. В большинстве случаев конфигурация, установленная по умолчанию, позволяет Postfix выполнять свои функции, иногда приходится лишь скорректировать значение
myorigin
. Опция
masquerade_domains
в основном применяется в тех случаях, когда сервер принимает для передачи письма, которые уже были обработаны почтовым сервером, выполняющимся в системе Linux или UNIX. Средства преобразования адресов воздействуют не только на заголовок From:, они также затрагивают содержимое заголовка
Received:
. Многие администраторы неохотно используют данные средства, но в ряде случаев они могут быть очень полезны, особенно если ваши программы требуют, чтобы имена и адреса в поле
From:
были представлены в специальном формате.
Настройка Postfix для получения почты
Подобно другим почтовым серверам, Postfix считает локальными только адреса некоторых узлов. Чтобы определить, какой из компьютеров является локальным, Postfix использует опцию
mydestination
. По умолчанию для данной опции приняты значения
$myhostname
и
localhost.$mydomain
. Например, если переменная
$mydomain
имеет значение
threeroomco.com
, a
$myhostname
—
franklin.threeroomco.com
, то Postfix будет принимать письма, направленные на компьютеры
franklin.threeroomco.com
и
localhost.threeroomco.com
.
При необходимости вы можете изменить или дополнить значения данной опции. Например, если почтовый сервер обслуживает домен, вам необходимо добавить переменную
$mydomain
. Неплохо также указать для данной опции значение
localhost
. Значения опции
mydestination
отделяются друг от друга запятыми. Например, для почтового сервера, обслуживающего один домен, в конфигурационный файл можно включить следующее выражение: