dkim-query-method

<domain>

Как получатель должен искать открытый ключ
в конфигурации это строкаdkim-query-methodвнутри блока <domain>
Поле, у которого нет второго значения

Задаёт поле подписи, которым отправитель сообщает, как искать открытый ключ. На практике способ один: запись TXT в системе доменных имён.

Он подразумевается и без строки. Стандарт называет запрос к DNS способом по умолчанию, и приёмники ищут ключ именно так, независимо от того, задано поле или нет.

Строка осталась ради полноты подписи и совместимости со старыми проверяющими, которые ожидали видеть поле явно.

Главная ловушка — придумывают значение. Поле принимает произвольную строку, и опечатка в нём не проверяется никем на вашей стороне. Приёмник, встретив незнакомый способ поиска, может не найти ключ вовсе — и подпись провалится при полностью верной настройке всего остального.
Что делает Хаб. Не пишет — и правильно: поле необязательно, а способ поиска всё равно один. Строка добавляет к подписи лишний байт и возможность опечататься.
Рекомендуемые значения

Не задавайте. Способ подразумевается, поле необязательно.

Если задаёте — только dns/txt. Других способов в обиходе нет.

Проверьте значение глазами. Оно не проверяется MTA: что написали, то и уйдёт в подпись.

Совет не задавать — наш. Из руководства здесь только назначение строки и её синтаксис: произвольная строка.
Пример в конфигурации
# строка необязательна; если задавать, то ровно так
<domain *>
    dkim-query-method dns/txt</domain>
Способ поиска ключа один и подразумевается по умолчанию: без этой строки приёмник ищет запись в DNS точно так же.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Задают произвольное значение

наш опыт

Чем чреватоMTA принимает любую строку и кладёт её в подпись как есть. Приёмник, не узнав способ поиска, может не найти ключ — при верном ключе и верной записи в DNS.
Как заметитьПровалы проверки при полностью верной настройке остального.
Как правильноУбрать строку либо задать dns/txt.

Ждут, что строка что-то ускорит

наш опыт

Чем чреватоПоле только сообщает способ, которым получатель и так воспользуется. На скорость и надёжность поиска ключа оно не влияет.
Как заметитьСтрока задана в расчёте на ускорение проверки.
Как правильноНичего: поле информационное.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
dkim-query-method <string>
Значения
строка со способом поиска ключа; на практике единственное осмысленное значение — dns/txt
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Подхватывается по pmta reload; на письма в очереди действует со следующей попытки.
⇄

Связанные директивы

1 связь

Как проверить на узле
Значение печатает команда настроек очереди; что вышло — видно в поле q= подписи:
pmta show settings gmail.com/vmta1 | grep -i query-method
grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -3
Без строки поля q= в подписи нет вовсе — и это нормально. Хаб этой строки не пишет.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подпись и аутентификация писем