Sendmail не может отправить электронное письмо на определенный домен

У меня есть сервер, на котором работает Sendmail, и я могу отправлять электронную почту на все домены, кроме электронной почты моей компании (company1.com). Я без проблем протестировал отправку на Gmail и другие поставщики электронной почты. Sendmail настроен на использование сторонней службы ретрансляции SMTP под названием MailJet.

При отправке на сайт Company1.com ретранслятор SMTP не получает электронные письма, и журнал ошибок sendmail выглядит следующим образом.

      company1 sendmail[676194]: 396L7G6I676194: from= Voicemail@company1.com, size=90, class=0, nrcpts=1, msgid=<202310062107.396L7G6I676194@company1.com>, relay=root@localhost
company1 sendmail[676196]: 396L7GsW676196: <user1@company1.com>... User unknown
company1 sendmail[676194]: 396L7G6I676194: to=user1@company1.com, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30090, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown

При отправке электронного письма на Gmail это журналы.

      company1 sendmail[668643]: 396KrnqT668643: from= Voicemail@company1.com, size=95, class=0, nrcpts=1, msgid=<202310062053.396KrnqT668643@company1.com>, relay=root@localhost
company1 sendmail[668645]: 396KrnVI668645: from=<Voicemail@company1.com>, size=337, class=0, nrcpts=1, msgid=<202310062053.396KrnqT668643@company1.com>, proto=ESMTP, daemon=MTA, relay=company1.com [127.0.0.1]
company1 sendmail[668643]: 396KrnqT668643: to=user1@gmail.com, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30095, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (396KrnVI668645 Message accepted for delivery)
company1 sendmail[668647]: STARTTLS=client, relay=[104.199.96.85]., version=TLSv1.3, verify=OK, cipher=TLS_AES_256_GCM_SHA384, bits=256/256
company1 sendmail[668647]: 396KrnVI668645: to=<user1@gmail.com>, delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=120337, relay=[104.199.96.85]. [104.199.96.85], dsn=2.0.0, stat=Sent (OK queued as 319dec48-ebc6-4f7d-a470-2c54a4091ac2)

В моем домене были следующие записи для DMARC. С тех пор я удалил его, и он все еще не работает.

      v=DMARC1; p=quarantine; fo=1; pct=100; rua=agg@company1.com; ruf=fail@company1.com

Я выполнил шаги, в которых люди упоминали об изменении файла /etc/mail/sendmail.mc и добавлении этих строк в конец:

      define(`MAIL_HUB', `company1.com.')dnl
define(`LOCAL_RELAY', `company1.com.')dnl

Это все равно не исправит. Насколько я могу судить, sendmail пытается использовать себя в качестве ретранслятора при отправке электронной почты на сайт business1.com вместо того, чтобы проходить через сторонний сервер ретрансляции smtp (Mailjet). Как я могу это исправить и заставить его работать?

2 ответа

По умолчанию sendmail работает в системе в домене.company1.comбудет считать, что это сервер электронной почты для этого домена, и будет пересылать почту, предназначенную для этого домена, себе, как вы обнаружили. Я считаю, что вам нужна функция mailertable; включите это в конфигурации sendmail, затем добавьте запись в/etc/mail/mailertableформы

      .company1.com:  smtp:mx.mailjet.com

где то, что следует за «smtp», — это одна из почтовых программ вашей службы пересылки. Более подробно здесь: https://www.sendmail.org/~ca/email/doc8.12/cf/m4/mailertables.html .

Изменить: поскольку функции Sendmail требуют обратной кавычки для открытия цитаты, я не могу показать синтаксис функции в комментарии. Включение mailertable в файле M4 осуществляется с помощью

      FEATURE(`mailertable')dnl

После того, как вы создали таблицу mailer, вам также необходимо преобразовать ее в форму, которую Sendmail сможет использовать с чем-то вроде

      makemap hash /etc/mail/mailertable < /etc/mail/mailertable

Оказывается, имя хоста сервера было установлено на Company1.com, из-за чего sendmail принудительно пересылал сообщения самому себе. Изменение имени хоста на server.company1.com устранило проблему.

Другие вопросы по тегам