2009-06-17

Настройка Domain Keys для cpanel

Количество нежелательной корреспонденции - спама в сети растет год от года. Можно называть тысячи причин  почему так происходит однако, как мне кажется, корни проблемы кроются, прежде всего в недостатках самого протокола SMTP не позволяющего надежно идентифицировать отправителя письма. Кто угодно может отправлять письма с любым обратным адресом, поэтому однозначно идентифицировать пользователя в сети бывает довольно трудно а порой и невозможно.

Поэтому для борьбы с нежелательной корреспонденцией постоянно создаются новые методы, хотя на сегодняшний день не один не может полностью блокировать спам.

Одним из путей решения данной проблемы является идентификация пользователя по имени домена которому принадлежит адрес электронной почты. При этом в DNS запись домена добавляется некая информация позволяющая идентифицировать почтовое сообщение. В настоящее время получили широкое распространение две технологии работающие по такому принципу Yahoo Domain Keys (DK) и Sender Policy Framework (SPF). Принцип действия DK основывается на алгоритме RSA  — на сервере отсылающем почту хранится пара ключей открытый и закрытый. При этом открытый ключ публикуется в TXT DNS записи, а закрытый используется для подписывания email сообщения. При этом при приеме сообщения клиентское приложение или MTA способны проверить правильность электронной подписи и сделать вывод о подлинности отправителя.
Если вы являетесь владельцем выделенного или виртуального выделенного сервера с установленной WHM/CPanel то то для того чтобы  добавить DK к вашей исходящей почте достаточно выполнить одну простую команду в консоле.

/usr/local/cpanel/bin/domain_keys_installer [username]

Где [username] - имя пользователя - владельца домена.


При этом cpanel выполнит за вас все необходимые процедуры - создаст пару RSA ключей и настроит MTA для работы с DK.
Чтобы убедиться в том что система настроена правильно можно послать самому себе тестовое сообщение. При этом в заголовках полученного письма будет добавлен примерно такой заголовок

DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=yoursite.com;
    h=Received:To:Subject:From:Content-Type:Content-Transfer-Encoding:Message-Id:Date; b=txGKMRa7OGMPvnwb97AR...



При этом может оказаться что при посылке сообщения через PHP заголовка в письме может не оказаться.

Дело все в том, что для корректной работы в письме оба обратных адреса должны принадлежать одному и тому же домену. Как правило это не так. PHP по умолчанию ставит обратный адрес прописанный в сисетме. Для того чтобы задать другой адрес можно воспользоваться пятым аргументом команды mail.

mail($email, $subject, $content, $headers,'-f bounce@yoursite.com');


Подписав таким образом свои сообщения можно значительно повысить шансы, что ваше письмо не попадет в спам. Однако при этом нужно быть осторожным - при неправильном использовании вы можете не только не улучшить но и ухудшить проходимость вашей почты.

Например если для отправки вы захотите использовать не свой SMTP сeрвер а SMTP своего интернет провайдера то ваши письма будут уходить не подписанными и некоторые получатели могут посчитать это попыткой их фальсификации. Этот метод также мало поможет если вы попадете в черные списки — DK в этом случае лишь дополнительно подтвердит, что вы  — это вы. Поэтому при принятии решения об использовании DK нужно принимать во внимание кто будет является потенциальным получателем вашей корреспонденции.

 

комментарии:

 

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться