Як налаштувати sendmail для ретрансляції через певний сервер


11

За моїм кабельним модемом у мене крихітна настройка домашнього сервера (зв'язок Bresnan). Я хочу, щоб ця рамка могла надсилати електронну пошту (не отримувати) для сповіщень і чогось іншого.

Що я вже зробив:

  • Я встановив і налаштував sendmail.
  • Я додав mail.bresnan.netсвою SMART_HOSTдирективу.

У чому я вірю, що це проблема

Коли я намагаюся надіслати електронний лист, у своєму електронному журналі я отримую наступне:

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, і це тайм-аут.

Тут моє запитання. Читачі Asstute помітять, pmx0.bresnan.netщо я не SMART_HOSTвстановив свою директиву. Це (зовні?) MXСервер для домену bresnan.com/net. Очевидно, у Bresnan їх мережа налаштована так, що ви не можете отримати доступ до цього сервера зсередини власної мережі, а натомість потрібно використовувати mail.bresnan.netсервер (до якого я можу підключитися). Проблема полягає в тому, що я не знаю, як сказати sendmail використовувати цей сервер, а не домен .

Що я спробував

  • Встановіть хост-запис так, щоб сервер pmx0 вказував на IP-адресу пошти. Це не працює, що має сенс, оскільки sendmail, очевидно, робить MX-запит, щоб знайти сервер, який повертає IP, тому ніколи не потрібно робити "нормальне" рішення DNS, щоб файл хостів ніколи не залучався.

Виправлення (для всієї вихідної пошти):

Знову ж таки, реквізит переходить до webmin (див. Примітку нижче), щоб допомогти мені це навчитися. Якщо ви вводите свій розумний хост із квадратними дужками, які вказують sendmail не здійснювати пошук MX, тож: define('SMART_HOST','[69.145.248.18]')(Виправити котирування-> backticks) насправді працює без таблиці пошти.

Виправлення (для конкретних доменів):

Як зазначено нижче, налаштування A mailertableне потрібно. Однак, як зазначалося на довільній сторінці , ця функція також повинна бути включена у вашому sendmail.mcфайлі.

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

Підсумок :

  • Додати FEATURE('mailertable')у свій sendmail.mcфайл. (зауважте, що першою цитатою має бути зворотній вибір.
  • Створіть свій /etc/mail/mailertableфайл (Див. Головну сторінку )
  • Створіть файл карти: sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Відновіть свої конфігурації make -C /etc/mail
  • Перезавантажте sendmail: service sendmail restart

Примітка: Я настійно рекомендую використовувати WebMin для редагування / відновити ці файли. Без нього я б зійшов з розуму, намагаючись зрозуміти, чому мій файл, що надсилається поштою, ігнорується.


Чи можемо ми побачити ваш sendmail.mc?
larsks

Коли ви внесли зміни в файл конфігурації sendmail.mc, чи перезавантажували sendmail після кожної зміни?
ewwhite

Відповіді:


7

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

Вміст файлу, ймовірно, повинен мати один рядок типу:

bresnan.net       esmtp:[69.145.248.18]

Збережіть файл і перезапустіть sendmail (або відновіть sendmail.cf, якщо це потрібно зробити вручну).


2
Ваша відповідь була правильною; проте мені довелося зробити кілька додаткових кроків. Для інших, хто стикається з цією проблемою, дивіться мою редакцію вище.
ErebusBat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.