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

Как настроить sendmail для ретрансляции через определенный сервер

У меня есть крошечный домашний сервер за моим кабельным модемом (связь Bresnan). Я хочу, чтобы в этом поле можно было отправлять электронную почту (не получать) для уведомлений и прочего.

Что я уже сделал:

Я считаю, что проблема в том

Когда я пытаюсь отправить электронное письмо, в моем журнале электронной почты появляется следующее:

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<aburns@bresnan.net>, 
  size=397, class=0, nrcpts=1,
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<my@work-address.com>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<my@work-address.com>, ctladdr=<aburns@bresnan.net>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

Вы можете видеть, где сообщение принято для доставки моим сервером sendmail, а затем где оно пытается передать его на сервер bresnan, и у него истекает время ожидания.

Вот где мой вопрос. Внимательные читатели заметят, что pmx0.bresnan.net это не то, что у меня есть SMART_HOST директива установлена ​​как. Это (снаружи?) MX сервер для домена bresnan.com/net. По-видимому, у bresnan настроена их сеть так, что вы не можете получить доступ к этому серверу из своей собственной сети и вместо этого должны использовать mail.bresnan.net сервер (к которому я могу подключиться). Проблема в том, что я не знаю, как сказать sendmail использовать этот сервер а не домен.

Что я пробовал

Исправление (для всей исходящей почты):

Опять же, props отправляется в webmin (см. Примечание ниже), чтобы помочь мне узнать это. Если вы вводите свой смарт-хост в квадратных скобках, что указывает sendmail не выполнять поиск MX, поэтому: define('SMART_HOST','[69.145.248.18]') (Исправить кавычки-> обратные кавычки) действительно работает без таблицы почтовой программы.

Исправление (для определенных доменов):

Как указано ниже, создание mailertable необходимо. Однако, как указано в страница руководства, эту функцию также необходимо включить в вашем sendmail.mc файл.

Также обратите внимание, что маршрут почтовой программы не заставляет sendmail использовать указанный сервер для всех операций, он основан на адресе получателя. На самом деле это нормально для меня, так как мне нужно отправить только на несколько доменов (gmail, google hosted и моя работа).

Резюме:

НОТА: я очень рекомендую использовать WebMin для редактирования / восстановления этих файлов. Без этого я бы сошел с ума, пытаясь понять, почему мой файл mailertable игнорируется.

Вы можете обойти поиск MX, добавив короткую запись в свой sendmail /etc/mail/mailertable файл.

В содержимом файла, вероятно, должна быть одна строка вроде:

bresnan.net       esmtp:[69.145.248.18]

Сохраните файл и перезапустите sendmail (или перестройте sendmail.cf, если это необходимо сделать вручную).