Если вы отправляете письма с множества доменов или постоянно добавляете новые, например домены клиентов, удобно управлять ими через Domains API. С его помощью можно программно:
- добавлять домены в аккаунт;
- получать DKIM- и SPF-записи для настройки DNS;
- запускать проверку записей;
- удалять домены.
Все запросы к Domains API выполняются с API-ключом аккаунта в заголовке X-Haskimail-Account-Token. Серверный ключ здесь не подойдёт. Как создать ключ аккаунта — в статье «Как создать API-ключ для аккаунта?».
Добавление домена
curl "https://api.haskimail.ru/domains" \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Haskimail-Account-Token: ваш_ключ_аккаунта" \
-d '{"Name": "example.ru"}'
В ответе придут данные нового домена, в том числе DNS-записи для DKIM и SPF:
{
"ID": 75772,
"Name": "example.ru",
"DKIMVerified": false,
"WeakDKIM": false,
"SPFVerified": false,
"ReturnPathDomainVerified": false,
"SPFTextValue": {
"valid": 0,
"name": "example.ru.",
"record_type": "TXT",
"value": "v=spf1 include:_spf.haskisender.ru ~all"
},
"DKIMTextValue": {
"valid": 0,
"name": "dm2._domainkey.example.ru.",
"record_type": "TXT",
"value": "v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...;t=s"
}
}
Настройка DNS
Поля SPFTextValue и DKIMTextValue содержат имя (name), тип (record_type) и значение (value) TXT-записей, которые нужно добавить в DNS домена. Например, для DKIM:
Имя: dm2._domainkey.example.ru
Тип: TXT
Значение: v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...;t=s
Проверка записей
После добавления записей в DNS можно не ждать автоматической проверки и запустить её через API:
PUT https://api.haskimail.ru/domains/{domainid}/verifyDkim
PUT https://api.haskimail.ru/domains/{domainid}/verifyspf
Обратите внимание на регистр в адресах: verifyDkim и verifyspf.
Удаление домена
Если клиент больше не пользуется вашей платформой, удалите его домен:
DELETE https://api.haskimail.ru/domains/{domainid}
Тело запроса не нужно. Если домен удалён, в ответе будет "ErrorCode": 0, а в поле Message — подтверждение удаления.
Полное описание методов — в документации Domains API.