Я настроил аппаратный SPF для своего домена и подписание сообщений DKIM на моем SMTP-сервере. Поскольку это единственный SMTP-сервер, который следует использовать для исходящей почты из моего домена, я не предвидел никаких сложностей.
Однако рассмотрим следующую ситуацию: я отправил сообщение электронной почты через свой SMTP-сервер на электронную почту моего коллеги из университета. Проблема в том, что мой коллега пересылает свою университетскую электронную почту на свою учетную запись GMail. Заголовки сообщения после того, как оно попадает в его почтовый ящик GMail:
Received-SPF: fail (google.com: domain of me@example.com does not designate 192.168.128.100 as permitted sender) client-ip=192.168.128.100; Authentication-Results: mx.google.com; spf=hardfail (google.com: domain of me@example.com does not designate 192.168.128.100 as permitted sender) smtp.mail=me@example.com; dkim=hardfail (test mode) header.i=@example.com
(Заголовки обработаны для защиты доменов и IP-адресов сторонних организаций)
GMail проверяет последний SMTP-сервер в цепочке доставки по моим записям SPF и DKIM (это правильно). Поскольку последним сервером STMP в цепочке доставки был сервер университета, а не мой сервер, проверка приводит к жесткому сбою SPF и отказу DKIM. К счастью, GMail не пометил сообщение как спам, но я опасаюсь, что это может вызвать проблемы в будущем.
Возможно, моя реализация жесткого отказа SPF слишком строгая? Есть ли другие рекомендации или потенциальные проблемы, о которых мне следует знать? Или, может быть, есть более идеальная конфигурация для университетской процедуры пересылки электронной почты? Я знаю, что сервер пересылки может изменить отправителя конверта, но я вижу, что это становится беспорядочным.
Сервер пересылки должен настроить SRS, чтобы не нарушать работу SPF. http://www.open-spf.org/srs/
Хотя пересылка действительно нарушает SPF (без SRS), обычно она не нарушает DKIM. Похоже (на основе dkim=hardfail (test mode)
в результатах аутентификации GMail) проблема в том, что ваша запись ключа SPF имеет t=y
флаг, указывающий, что он предназначен только для в целях тестирования.