Многие почтовые серверы получают почту с внешних компьютеров. Существуют два способа адресации почтового сервера.
• Непосредственная адресация. Письмо может быть направлено пользователю, учетная запись которого находится на почтовом сервере. Например, если почтовый сервер имеет имя mail.threeroomco.com
, то почтовый адрес пользователя будет выглядеть так: jennie@mail.threeroomco.com
. В этом случае для сервера имен потребуется только запись А, связывающая имя почтового сервера с его адресом. Недостаток подобного способа состоит в том, что адрес получается несколько длиннее, чем он мог бы быть.
• Указание адреса домена. Для того чтобы сократить почтовый адрес, а также для того, чтобы обеспечить работу резервных почтовых серверов, в конфигурационном файле сервера DNS предусмотрена запись MX
. Если в почтовом адресе указано только имя домена, запись MX
позволят направить это письмо на конкретный компьютер. Предположим, например, что в конфигурационном файле сервера имен, управляющего доменом threeroomco.com
, содержится запись MX
, указывающая на компьютер mail.threeroomco.com
. В этом случае письмо, адресованное пользователю jennie@threeroomco.com
, будет доставлено на узел mail.threeroomco.com
. Указав в конфигурационном файле сервера DNS несколько записей MX
, администратор может организовать использование резервных почтовых серверов. По сравнению с непосредственной адресацией данный способ несколько усложняет администрирование домена.
Формат конфигурационного файла сервера DNS, в частности структура записей MX
, рассматривалась в главе 18. Если вы устанавливаете почтовый сервер по адресу mail.threeroomco.com
, соответствующая запись MX
будет выглядеть следующим образом:
@ IN MX 10 mail.threeroomco.com.
Эта строка содержится в конфигурационном файле зоны, имя которого указано в файле /var/named
. Символ @
в начале строки означает, что запись применима ко всему домену. Идентификатор IN
представляет собой стандартный компонент записи, описывающей домен Internet, a MX
определяет тип записи. Число 10 представляет приоритет записи. Сервер, осуществляющий передачу почты, сначала старается установить соединение с почтовыми серверами, которым соответствуют малые значения приоритетов, а если очередной сервер не отвечает, он обращается к компьютеру с более высоким приоритетом. Это позволяет использовать в составе домена несколько почтовых серверов. В конце записи указывается полное доменное имя почтового сервера, завершающееся точкой.
На заметку
Передавая письма на почтовый сервер вашей сети, внешним пользователям достаточно указать лишь имя домена. Однако локальные пользователи при настройке своих клиентских программ должны задавать полное имя сервера SMTP.
Передача данных с помощью протокола SMTP
Для того чтобы понять материал данной главы, надо хотя бы в общих чертах представлять себе принцип передачи почтовых сообщений с помощью протокола SMTP. В частности, необходимо знать различия между заголовками конверта (envelope header), заголовками сообщения (message header) и телом сообщения (message data). Заголовком конверта считаются поля From
и То
и содержащиеся в них адреса, которые указываются передающим компьютером при установлении SMTP-соединения. В особенности важен заголовок конверта То
, так как именно его анализирует принимающая система, определяя, кому адресовано данное сообщение.
В отличие от заголовка конверта, заголовок сообщения входит в состав письма. Нередко этот заголовок составляет значительную часть сообщения, доставляемого адресату. Среди них также присутствуют поля From:
и To:
, но полагаться на их значения нельзя, так как они могут быть фальсифицированы. К заголовку сообщения относятся также поле Received:
, которое отражает путь, проделанный письмом, и поле Subject:
, отображаемое большинством программ просмотра писем.
На заметку
В заголовке сообщения значение поля отделяется от его имени двоеточием. В заголовке конверта двоеточие обычно не используется. Если сервер SMTP использует формат maildir
, данные, содержащиеся в заголовке конверта, хотя и используются при выполнении SMTP-транзакции, но не сохраняются в сообщении. Некоторые серверы могут быть сконфигурированы так, чтобы адреса, указанные в полях From
и То
заголовка конверта, сохранялись в составе поля Received:
заголовка сообщения. Это помогает в тех случаях, когда надо выяснить причину возникновения проблем при передаче писем.
Читать дальше