Я обнаружил, что удаленный сайт переписывает электронную почту, предназначенную для наших машин, чтобы использовать CName машины, на которую было отправлено письмо (например, mail@virtual.virtualdomain.com становится mail@cname.maindomain.com). Это правильное поведение?
Если да, можно ли этого избежать, добавив запись MX или что-то еще?
Да, такое поведение неверно ... но применение стандартов RFC в SMTP безнадежно. Цитировать RFC 5321:
Поиск сначала пытается найти запись MX, связанную с именем. Если запись CNAME найдена, полученное имя обрабатывается. как если бы это было первоначальное имя.
Но MTA sendmail по умолчанию перезаписывает адрес получателя в нарушение RFC. В nocanonify
особенность, или DontExpandCnames
вариант, исправьте это ... но когда у вас нет контроля над сервером, который что-то возится, все, что вы можете сделать, это обойти это.
Формулировка RFC изначально была в RFC 2821, с 2001 года, но, что забавно, текущая документация sendmail по DontExpandCnames
и по сей день говорит, цитата:
Если установлено, поиск $ [... $], который выполняет поиск на основе DNS, не расширяет записи CNAME. В настоящее время это нарушает опубликованные стандарты, но, похоже, IETF движется к легализации этого.