Настройка sendmail за брандмауэром
я настраиваю сервер, который находится в сети за брандмауэром, и я хочу, чтобы программы на этом компьютере могли использовать sendmail для отправки писем на любой адрес электронной почты. У нас есть SMTP-сервер, работающий в этой сети (назовем его mailrelay.example.com) именно так мы должны получать исходящие письма через брандмауэр.
Итак, как настроить sendmail для отправки всей почты через mailrelay.example.com? Googling еще не дал мне ответа и только показал эта конфигурация sendmail чрезвычайно сложна и раздражает.
3 ответов
@eli: изменение sendmail.cf напрямую обычно не рекомендуется, так как он генерируется компилятором макросов.
редактировать / etc / mail / sendmail.mc включить строку:
define(`SMART_HOST',`mailrelay.example.com')dnl
после изменения sendmail.файл конфигурации макроса mc, его необходимо перекомпилировать для создания файла конфигурации sendmail.
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
и перезапустите службу sendmail (Linux):
# /etc/init.d/sendmail restart
а также установка smarthost, вы можете также отключите конфигурацию разрешения имен и, возможно, переместите sendmail на нестандартный порт или отключите режим демона.
Отключить Разрешение Имен
серверы, которые находятся в огневых сетях или используют сетевой адрес Перевод (NAT) может не иметь доступных служб DNS или NIS. Это создает проблема для sendmail, так как он будет использовать DNS по умолчанию, а если нет доступные вы увидите такие сообщения в mailq:
host map: lookup (mydomain.com): deferred)
если вы не подготовлено для настройки соответствующей службы DNS или NIS, которая sendmail может использовать, в этом случае вы обычно настраиваете имя разрешение должно быть сделано с помощью файла/etc / hosts. Это делается путем включения служба.переключите файл и укажите разрешение по файлу следующим образом:
1: включить службу.переключатель для sendmail Редактировать /etc / mail / sendmail.mc включить строки:
define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl
2. настройка сервиса.переключатель для файлов Создание или изменение /etc/mail / service.переключиться только на ссылку to/etc / hosts для имени разрешение:
# cat /etc/mail/service.switch
hosts files
3: перекомпилировать sendmail.mc и перезапустите sendmail, чтобы этот параметр вступил в силу.
Shift sendmail на нестандартный порт или отключить режим демона
по умолчанию sendmail будет прослушивать порт 25. Возможно, вы захотите изменить этот порт или вообще отключить режим демона sendmail по разным причинам: - если существует политика безопасности, запрещающая использование известных портов - если другой SMTP продукт/процесс работайте на том же хосте на стандартном порту - если вы вообще не хотите принимать почту через smtp, просто отправьте ее с помощью sendmail
1: для переключения sendmail использовать нестандартный порт. Редактировать /etc / mail / sendmail.mc и измените настройку "порт" в строке:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
например, чтобы заставить sendmail использовать порт 125:
DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')
для этого потребуется sendmail.mc для перекомпиляции и sendmail для перезапуска.
2: в качестве альтернативы, чтобы отключить sendmail режим демона в целом (Linux) Отредактируйте /etc/sysconfig / sendmail и измените параметр "DAEMON" на:
DAEMON=no
это изменение потребует перезапуска sendmail.
http://www.elandsys.com/resources/sendmail/smarthost.html
Sendmail Smarthost
smarthost-это хост, через который ретранслируется исходящая почта. некоторые провайдеры блокировать исходящий SMTP-трафик (порт 25) и требовать, чтобы их пользователи отправляли вся почта через почту ISP сервер. Sendmail можно настроить на используйте почтовый сервер ISP в качестве smart хозяин.
прочитайте связанную Статью для инструкции для как это настроить.
@Espo: Спасибо за отличный совет о том, с чего начать. Ваша ссылка была бы лучше, если бы я настраивал sendmail для его первого использования вместо того, чтобы принимать существующую конфигурацию и делать это небольшое изменение. Однако, как только я узнал, что нужно искать материал на "SmartHost", я нашел более простой способ.
все, что мне нужно было сделать, это отредактировать мой /etc/mail/sendmail.cf файл для изменения
DS
to
DSmailrelay.example.com
перезапустите sendmail и он работал.