Назад | Перейти на главную страницу

Sendmail: игнорировать локальную доставку

У меня есть веб-сервер Ubuntu с Sendmail в качестве MTA

В настоящее время, когда я отправляю электронную почту за пределами домена моего веб-сервера, например example.com на что-то вроде Gmail или любой другой электронной почты за пределами домена example.com, он отлично работает. Я не хочу, чтобы мой демон sendmail распознавал example.com как локальный адрес. Я хочу, чтобы он отправлял на example.com так же, как отправляется любое другое электронное письмо.

Никогда не будет случая, когда я буду использовать локальных пользователей на веб-сервере для сбора этих писем для example.com.

Итак, как я могу отключить локальную доставку?

Вы можете сделать это, удалив свое доменное имя из файла / etc / hosts. Вам необходимо настроить senmail для использования вашего доменного имени (example.com) при отправке писем вместо localhost.

редактировать /etc/mail/sendmail.mc добавить следующее:

     MASQUERADE_AS(example.com)dnl
     FEATURE(masquerade_envelope)dnl
     FEATURE(masquerade_entire_domain)dnl
     MASQUERADE_DOMAIN(example.com)dnl

перед:

   MAILER(smtp)dnl
   MAILER(procmail)dnl
   dnl MAILER(cyrusv2)dnl

тип m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf затем беги /sbin/service sendmail restart

сделайте резервную копию всего, что вы редактируете, перед любыми изменениями!

это решение отлично работает со мной!

Sendmail рассматривает класс "w" как те домены, для которых он будет пытаться локальную доставку. Конфигурация CentOS по умолчанию включает эти строки, например:

Cwlocalhost
# file containing names of hosts for which we receive email
Fw/etc/mail/local-host-names

Это указывает "w", чтобы включить имя "localhost" и содержимое файла "/ etc / mail / local-host-names". Я подозреваю, что у вас есть "example.com" в "/ etc / mail / local-host-names", вероятно, настроенный во время установки системы.

Вы захотите дважды проверить это, так как у меня нет тестовой системы sendmail, чтобы проверить это, поэтому я не могу проверить это здесь. Кроме того, он может несколько отличаться в зависимости от конкретной установки sendmail, которая может варьироваться в зависимости от дистрибутива или ОС.

Вы можете сделать это, добавив правила в набор правил 2. В файл sendmail.mc добавьте следующее:

LOCAL_RULE_2
R$* < $=w . > $*          $#esmtp $@[MX server for example.com] $: $1 < @ $2 > $3

Помните, что левая и правая части правила разделены табуляцией, поэтому не копируйте вставку. Затем создайте свой sendmail.cf из sendmail.mc, перезапустите sendmail и проверьте.

Вы можете использовать карту bestmx, если не хотите жестко указывать имя MX-сервера в скобках.