2008-09-04 10 views
6

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

Итак, как мне настроить sendmail для отправки всей почты через mailrelay.example.com? Googling еще не дал мне ответа и только показал, что конфигурация sendmail чрезвычайно сложна и раздражает.

ответ

11

@eli: изменение sendmail.cf напрямую не рекомендуется, так как оно генерируется компилятором макросов.

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

define(`SMART_HOST',`mailrelay.example.com')dnl 

После изменения sendmail.mc макро файл конфигурации, необходимо перекомпилировать производить конфигурационный файл.

# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 

и перезапустить Sendmail службы (Linux):

# /etc/init.d/sendmail restart 

Как и при установке промежуточного узла, вы можете также отключить конфигурацию разрешения имен и, возможно, перенести ваш Sendmail к нестандартному порту, или отключить демон.

Disable Name Resolution

Сервера, которые находятся в пожарных стенах сетей или с помощью сетевого адреса Translation (NAT) не может иметь DNS или NIS услуги доступны.Это создает проблему для Sendmail, так как он будет использовать DNS по умолчанию, и если она не доступна вы увидите сообщения, как это в mailq:

host map: lookup (mydomain.com): deferred) 

Если вы не готовы к установке соответствующего DNS или NIS услугу, которую может использовать sendmail, в этой ситуации вы обычно настраиваете разрешение , которое должно быть выполнено с помощью файла/etc/hosts. Это делается путем включения файл «service.switch» и указав разрешение на файл следующим образом:

1: Включить service.switch для Sendmail Edit /etc/mail/sendmail.mc включать следующие строки:

define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl 

2: Настройка service.switch для файлов Создание или изменение /etc/mail/service.switch относятся только к/и т.д./хосты за имя разрешение:

# cat /etc/mail/service.switch 
    hosts files 

3: Recompil e sendmail.mc и перезапустите sendmail, чтобы этот параметр вступил в силу.

сдвиг Sendmail к нестандартному порту, или отключить режим демона

По умолчанию Sendmail будет слушать на порту 25. Вы можете изменить этот порт или отключить режим демона Sendmail вообще по разным причинам: - если существует политика безопасности, запрещающая использование известных портов - если другой продукт/процесс SMTP должен работать на том же хосте на стандартном порту - если вы не хотите принимать почту через smtp вообще , просто отправьте его с помощью sendmail

1: Чтобы сдвинуть sendmail на использование нестандартного порта. Edit /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) Редактировать/и т.д./sysconfig/Sendmail и изменить "DAEMON" настройки для:

DAEMON=no 

Это изменение потребует Sendmail должен быть перезапущен.

+0

Спасибо! Этот совет о `service.switch` решил мою проблему. – 2011-08-09 02:41:40

5

http://www.elandsys.com/resources/sendmail/smarthost.html

Sendmail Smarthost

промежуточный узел является хост, через который исходящей почты передается. Некоторые интернет-провайдеры блокируют исходящий SMTP-трафик (порт 25) и требуют, чтобы их пользователи отправляли всю почту через почту провайдера . Sendmail может быть настроен на , используя почтовый сервер ISP в качестве смарт- хоста.

Прочтите связанную статью, чтобы узнать, как ее установить.

3

@Espo: Спасибо за отличный совет о том, с чего начать. Ваша ссылка была бы лучше, если бы я настроил sendmail для его первого использования, вместо того, чтобы использовать существующую конфигурацию и сделать это небольшое изменение. Однако, как только я знал, что искать вещи на «SmartHost», я нашел более простой способ.

Все, что я должен был сделать отредактировать мой файл /etc/mail/sendmail.cf изменить

DS 

в

DSmailrelay.example.com 

затем перезапустить Sendmail, и она работала.