VestaCP и pdd.yandex.ru. Отправка писем. DKIM и игнорирование «локальных» ящиков — DeaDSandro Notes
deadsandro Ubuntu / Debian,VestaCP
Столкнулся с 2 проблемами при использовании сервиса PDD от Яндекса с VestaCP.
Проблема #1. Использование секретного DKIM ключа от Яндекса.
Описание проблемы: Требуется корректная DKIM подпись для отправки как из почтового интерфейса Яндекса, так и для отправки с нашего сервера.
Решение:
- Получение секретного ключа DKIM
Получаем токен для управления доменом через
API: https://pddimp.yandex.ru/api2/admin/get_token
Далее с помощью токена можно получить секретный ключ DKIM. Подробности тут: https://tech.yandex.ru/pdd/doc/reference/dkim-status-docpage/
Теперь этот ключ надо подменить в нашей конфигурации Exim для домена. - Установка нового ключа DKIM взамен сгенерированного самой панелью Vesta
Мы предполагаем, что домен уже добавлен в панели управления (вкладка MAIL) с включенным DKIM. - Проверяем правильность установки ключа. Для проверки я обычно отправляю письмо на ящик на Яндексе и проверяю наличие флажка
Проблема #2. После создания mail домена у VestaCP все письма, отправленные на ящики вида user@domain падают в локальную почту.
Но так как мы используем PDD от яндекса, нам в большинстве случаев это не требуется, так как интерфейс яндекса в большинстве случаев удобнее и привычнее RoundCube (да и защита от спама посерьезнее).
В нашем случае ящики user@domain создаются для менеджеров, которые с Яндексом хорошо знакомы, поэтому он более предпочтителен.
Решение.
Для решения проблемы потребуется чуть-чуть изменить конфиги Exim.
В обоих случаях мы будем изменять файл конфига Exim, который располагается по пути /etc/exim4/exim4.conf.template
Решение #1. «В лоб».
Находим в указанном выше файле блок ROUTERS CONFIGURATION и чуть ниже строчки:
dnslookup: driver = dnslookup domains = !+local_domains transport = remote_smtp no_more
Правило в строке domains = !+local_domains пропускает все существующие в VestaCP домены (mail домены). Мы можем закомментировать эту строчку для быстрого решения. ВНИМАНИЕ: данное «решение» можно применять ТОЛЬКО в том случае, если вы не собираетесь использовать внутреннюю локальную почту!
Решение #2.
Находим в указанном выше файле блок ROUTERS CONFIGURATION и перед правилом dnslookup добавляем еще одно:
dnslookup2: driver = dnslookup transport = remote_smtp condition = ${if exists{/etc/exim4/domains/$domain/remote_always}{true}{false}} no_more
Теперь мы можем «управлять» поведением.
Не забудьте перезагрузить Exim (service exim4 restart).
В логах можно увидеть следующее (письмо отправляется на 3 ящика)
2016-03-29 15:56:52 1aktCW-0003J6-E8 <= no-reply@{DOMAIN} U=user P=local S=1018 id=9334fe7094b267139e89cb4005007491@{DOMAIN} 2016-03-29 15:56:53 1aktCW-0003J6-E8 => [email protected] R=dnslookup T=remote_smtp H=mx.yandex.ru [213.180.204.89] X=TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256 C="250 2.0.0 Ok: queued on mxfront9j.mail.yandex.net as 1459256213-e8YZDBmRmN-ur1KgWJk" 2016-03-29 15:56:54 1aktCW-0003J6-E8 => manager@{DOMAIN} R=dnslookup2 T=remote_smtp H=mx.yandex.net [93.158.134.89] X=TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256 C="250 2.0.0 Ok: queued on mxfront5m. mail.yandex.net as 1459256214-sJw1dJeXUh-urn0ojhT" 2016-03-29 15:56:54 1aktCW-0003J6-E8 -> tatiana@{DOMAIN} R=dnslookup2 T=remote_smtp H=mx.yandex.net [93.158.134.89] X=TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256 C="250 2.0.0 Ok: queued on mxfront5m.mail.yandex.net as 1459256214-sJw1dJeXUh-urn0ojhT" 2016-03-29 15:56:54 1aktCW-0003J6-E8 Completed
Для ящиков user@domain сработает правило dnslookup2, для остальных dnslookup
Делегирование DNS-домена на серверы Яндекса и подключение к бесплатной услуге Яндекса «Почта для домена»
03.02.2016 Автор:Алексей Максимов
40 126 Просмотров
Сегодня практически любой виртуальный хостинг в качестве дополнительной услуги предлагает возможность создания почтовых ящиков для вашего домена, однако удобство работы с такими ящиками иногда оставляет желать лучшего.
Одним из основных этапов настройки привязки домена к почтовой системе Яндекса является создание специальных записей в DNS-зоне вашего домена. Чтобы максимально упростить и автоматизировать данную процедуру, можно произвести делегирование домена на NS-серверы Яндекса, то есть фактически воспользоваться ещё одним бесплатным сервисом
В этой заметке мы поэтапно рассмотрим процедуру подключения почты домена к почтовым серверам Яндекса а также делегирование домена серверам Яндекса на примере нашего домена IT-KB. RU
Регистрируем аккаунт на Яндексе
Для работы с Почтой для домена необходим аккаунт Яндекса, используя который, мы в дальнейшем будем управлять почтой. На данный момент к каждому аккаунту можно подключить до 50 доменов. Зарегистрируемся и получим аккаунт Яндекс, если этого ещё не было сделано ранее.
Подключаем домен к Яндексу
После того, как мы авторизовались на сайте Яндекс используя созданный аккаунт, откроем cтраницу добавления домена, укажем имя нашего домена и нажмём кнопку Подключить домен.
После добавления домена, нам нужно будет подтвердить то, что мы являемся его владельцем. На веб-странице будет отображаться статус Домен не подтверждён и будет предложено три варианта действий, которыми мы сможем подтвердить владение доменом.
Из трёх предложенных вариантов я выбрал первый вариант с размещением файла в корневом каталоге сайта. После того, как указанный файл размещен, жмём кнопку Проверить владение доменом.
После успешной проверки нас перенаправят на страницу настройки MX-записи для нашего домена. Внести указанные изменения в DNS-зоне нашего домена можно как самостоятельно, так и автоматически, если выполнить делегирование домена на Яндекс. Учитывая то, что помимо MX-записи в нашем домене для полноценной поддержки почты Яндекс потребуется внести ещё несколько служебных SRV-записей, проще всего выполнить делегирование домена, в результате которого все нужные записи в DNS-зоне нашего домена будут созданы автоматически.
Пройдём по справочной ссылке делегировать домен на Яндекс и ознакомимся с информацией о том, как делегировать DNS-домен NS-серверам Яндекса. Здесь всё предельно просто. Переходим на DNS-хостинг, на котором в данный момент расположен наш доменом и правим записи NS-серверов. Поменяем текущие NS-серверы на dns1.yandex.net и dns2.yandex.net
Ждём некоторое время (может пройти от нескольких часов до двух суток), чтобы изменения разошлись по нейм-серверам интернета и проверяем результат, например, с помощью утилиты nslookup
Как видим, теперь нейм-серверами нашего домена являются серверы Яндекса, и мы можем вернуться к настройке почты для домена. Вернёмся на консоль управления почтой домена и увидим, что теперь статус домена изменился на Домен подключён и делегирован на Яндекс.
Откроем ссылку Редактор DNS и просмотрим автоматически добавленные и настроенные после делегирования домена записи для поддержки сервисов Яндекса — MX,CNAME записи для указания почтового сервера, SRV (SPF, DKIM) записи для поддержки сервисов почты и системы обмена сообщениями по XMPP.
Создадим новый почтовый ящик для нашего домена и ознакомимся с доступными возможностями по управлению ящиками
После создания ящиков входить получать доступ к почте через веб-интерфейс можно будет по ссылкам вида http://mail.yandex.ru/for/it-kb.ru или https://mail.it-kb.ru/ (в нашем DNS-домене для узла mail должна быть создана соответствующая запись). Войдя в почту, мы увидим, что для пользователей нашего домена доступно использование сервиса Яндекс. Диск с бесплатным базовым размером в 10GB.
Изучаем «плюшки» и делаем выводы
Из дополнительных интересных возможностей, которые предоставляет сервис «почта для домена» от Яндекс можно выделить ещё некоторые:
- Возможность импорта почтовых ящиков с других почтовых серверов, в том числе и публичных, таких как например Gmail;
- Централизованное управление ящиками домена;
- Создание внутри-доменных групп рассылки;
- Создание своей Jabber-сети с возможностью подключения к другим Jabber-сетям.
- Доступ к почтовым ящикам с главных страниц Яндекса, напрямую с почтовых клиентов, с мобильных устройств ;
- API для программного управления почтой домена;
- и т.д.
Глядя на всё это, можно сказать, что для любой небольшой команды/компании/организации имеющей даже только лишь собственное доменное имя, на базе сервиса Почта для домена от Яндекс можно построить вполне приличный почтовый сервис для своего домена без финансовых затрат.
PS: Любителям позлорадствовать, сразу скажу, что данная заметка не носит какой-либо рекламный характер, а написана мной исключительно для того, чтобы познакомить с интересным бесплатным Российским сервисом от Яндекс тех, кто о нём ещё ничего не слышал.
Опубликовано в : Хостинг , Яндекс
Метки : DNS , Domain , Hosting , Jabber , Mail , Mailbox , MX , Nameserver , XMPP , Yandex , Домен , Почта для домена , Хостинг , Яндекс
Добавить почтовый ящик — API. Yandex.Mail for Domain API
Этот запрос используется для добавления почтового ящика для домена.
- Синтаксис запроса
- Пример запроса
- Структура ответа
Запрос должен быть отправлен по протоколу HTTPS методом POST.
POST /api2/admin/email/добавить Хост: pddimp.yandex.ru ОписаниеТокен PDD.
"}}">: <токен PDD> . », « &», «*», «(», «)», «_», «-», «+», «:», «;», «, «.»
отличаться от имени пользователя.
Заголовки:
Наименование | Описание |
---|---|
Параметры:
Параметр | Тип | 30076 |
---|---|---|
Обязательный | ||
домен | Строка | Имя домена. |
логин | String | Электронный адрес почтового ящика в формате «username@domain. », « &», «*», «(», «)», «_», «-», «+», «:», «;», «,», «.» отличаться от имени пользователя. |
POST /api2/registrar/email/добавить Хост: pddimp.yandex.ru ОписаниеТокен PDD.
"}}">: <токен PDD> ОписаниеМаркер доступа OAuth.
"}}">: OAuth <токен OAuth> ... ТипСтрока
Значение
Имя домена.
"}}">=<имя домена> & Тип 9", "&", "*", "(", ")", "_", "-", "+", ":", ";", ", "."
отличаться от имени пользователя.
Заголовки:
Наименование | Описание |
---|---|
Авторизация | Маркер доступа OAuth. |
Parameters:
Parameter | Type | Value |
---|---|---|
Mandatory | ||
domain | String | Name of the domain. |
логин | String | Электронный адрес почтового ящика в формате «[email protected]» или «username». | 9″, «&», «*», «(«, «)», «_», «-«, «+», «:», «;», «, «.»
POST /api2/admin/email/добавить HTTP/1. 1 Хост: pddimp.yandex.ru PddToken: 123456789ABCDEF00000000000000000000000000000000000000 ... Domain = Domain.com & Login = Newlogin & Password = 1234567890
Curl
Curl -H 'Pddtoken: 123456789ABCDEF000000000000000000000000000000000' -d Domain = Domain.com & login..com = newrog и newrognin и newrogin newogin и newrogin resworgin и newrog newogin и newgin = newrogin reshin.comn.com и login..com.0' 'https://pddimp.yandex.ru/api2/admin/email/add'
POST /api2/admin/email/add HTTP/1.1 Хост: pddimp.yandex.ru PddToken: 123456789ABCDEF00000000000000000000000000000000000000 Авторизация: OAuth 00123456789ABCDEF000000000000000000000000000000000000 ... domain=domain.com&login=newlogin&password=1234567890
cURL
curl -H 'PddToken: 123456789ABCDEF0000000000000000000000000000000000000' -H 'Authorization: OAuth 00123456789ABCDEF00000000000000000000000000000000000' -d 'domain=domain. com&login=newlogin&password=1234567890' 'https://pddimp.yandex.ru/api2/admin/email/add'
{ " Тип значенияСтрока
Описание
Имя домена.
"}}">": "{имя домена}", " Тип значенияСтрока
Описание
Адрес электронной почты почтового ящика.
"}}">":"{адрес электронной почты почтового ящика}", " Тип значенияЦелое число
Описание
Идентификатор почтового ящика.
"}}">": "{ID почтового ящика}", " Тип значенияСтрока
Описание
Статус выполнения запроса.
Возможные значения:
"}}">": "{статус выполнения запроса}" }
{ " Тип значенияСтрока
Описание
Имя домена.
"}}">": "{имя домена}", " Тип значенияСтрока
Описание
Статус выполнения запроса.
Возможные значения:
"}}">": "{статус выполнения запроса}", " Тип значенияСтрока
Описание
Код ошибки.
Включен в ответ, если запрос привел к ошибке.
Возможные значения:
-
Неизвестный
- A Временная или AP произошла ошибка (повторите запрос позже).0416 no_ip ) — пропущен обязательный параметр. -
bad_domain
— доменное имя не указано или не соответствует RFC. -
запрещено
— Запрещенное доменное имя. -
bad_token
(bad_login
,bad_passwd
) — был передан недопустимый токен PDD (или имя пользователя/пароль). -
no_auth
— заголовокPddToken
был опущен. -
not_allowed
— Эта операция не разрешена для этого пользователя (пользователь не является администратором домена). -
заблокирован
— Заблокированный домен (например, из-за спама и т.п.).
-
занято
— доменное имя используется другим пользователем. -
domain_limit_reached
— Превышено допустимое количество подключенных доменов (50). -
no_reply
— Яндекс.Почта для домена не может подключиться к серверу-источнику для импорта.
Была ли статья полезной?
Получение списков рассылки домена — API. Яндекс.Почта для домена API
Этот запрос используется для получения всех списков рассылки домена.
- Синтаксис запроса
- Пример запроса
- Структура ответа
Запрос должен быть отправлен по протоколу HTTPS методом GET.
ПОЛУЧИТЬ /api2/admin/email/ml/list? ТипСтрока
Значение
Имя домена.
"}}">=<имя домена> Хост: pddimp.yandex.ru ОписаниеТокен PDD.
"}}">:
Заголовки:
Название | Описание |
---|---|
Parameters:
Parameter | Type | Value |
---|---|---|
Mandatory | ||
domain | String | Name of the domain. |
ПОЛУЧИТЬ /api2/registrar/email/ml/list? ТипСтрока
Значение
Имя домена.
"}}">=<имя домена> Хост: pddimp.yandex.ru ОписаниеТокен PDD.
"}}">: <токен PDD> ОписаниеМаркер доступа OAuth.
"}}">: OAuth
Заголовки:
Наименование | Описание |
---|---|
Авторизация | Маркер доступа OAuth. |
Parameters:
Parameter | Type | Value |
---|---|---|
Mandatory | ||
domain | String | Name of the domain . |
ПОЛУЧИТЬ /api2/admin/email/ml/list?domain=domain.com HTTP/1.1 Хост: pddimp.yandex.ru Пддтокен: 123456789ABCDEF000000000000000000000000000000000000000
Неизвестный
произошла ошибка (повторите запрос позже)no_token
(no_domain
,no_ip
) — пропущен обязательный параметр.bad_domain
— доменное имя не указано или не соответствует RFC.запрещено
— Запрещенное доменное имя.bad_token
(bad_login
,bad_passwd
) — был передан недопустимый токен PDD (или имя пользователя/пароль).no_auth
— заголовокPddToken
был опущен.not_allowed
— Эта операция не разрешена для данного пользователя (пользователь не является администратором домена).заблокирован
— Заблокированный домен (например, из-за спама и т.п.).занято
— доменное имя используется другим пользователем.domain_limit_reached
— Превышено допустимое количество подключенных доменов (50).
Curl
Curl -H 'Pddtoken: 123456789ABCDEF0000000000000000000000000000000' 'https://pddimp. yandex.ru. /email/ml/list?domain=domain.com HTTP/1.1 Хост: pddimp.yandex.ru PddToken: 123456789ABCDEF00000000000000000000000000000000000000 Авторизация: OAuth 00123456789ABCDEF000000000000000000000000000000000000
cURL
curl -H 'PddToken: 123456789ABCDEF000000000000000000000000000000000000000 '-H' Authorization: OAuth 00123456789ABCDEF0000000000000000000000000000000 '' https://pddimp.yandex.ru/api2/admin/eml/ml/listex. " Тип значенияСтрока
Описание
Имя домена.
"}}">": "{имя домена}", " Тип значенияМассив
Описание
Свойства списков рассылки. Каждый объект в массиве соответствует одному списку рассылки.
"}}">": [ { " Тип значенияСтрока
Описание
Адрес электронной почты списка рассылки.
"}}">": "{адрес списка рассылки}", " Тип значенияЦелое число
Описание
Идентификатор списка рассылки.
"}}">": "{ID списка рассылки}", " Тип значенияЦелое число
Описание
Количество подписчиков на список рассылки.
"}}">": "{количество подписчиков}" }, ... ], " Тип значенияСтрока
Описание
Статус выполнения запроса.
Возможные значения:
"}}">": "{статус выполнения запроса}" }
{ " Тип значенияСтрока
Описание
Имя домена.
"}}">": "{имя домена}", " Тип значенияСтрока
Описание
Состояние выполнения запроса.
Возможные значения:
"}}">": "{статус выполнения запроса}", " Тип значениястрока
Описание
Код ошибки.
Включен в ответ, если запрос привел к ошибке.
Возможные значения: