Настройте почтовый сервер к реле через другой почтовый сервер

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

0
задан 7 August 2010 в 18:42
1 ответ

Любой достойный MTA (почтовый сервер) должен смочь направить почту согласно правилам, вместо просто на основе DNS. Мой опыт главным образом с Exim, но Exim не уникален здесь.

Конечно, с Exim это почти тривиально для записи Маршрутизатора, который смотрит на адрес отправителя для определения который хост отослать и поместить это перед нормальным dnslookup или smarthost Маршрутизатором. Добавьте, что учетные данные добавляют немного сложности, но не очень. Самый большой вопрос состоит действительно в том, как Вы хотите хранить данные? LDAP? MySQL? CDB? Плоские файлы? Все это работает. Я не использую Exchange сам, но существует много людей использование, Exim перед Exchange и доверием поддержке LDAP Exim для запросов AD для данных не придется копировать информацию.

Например, как нетривиальный пример, реализовывая все Ваши пожелания, с некоторой безопасностью на вершине, с файлом CDB, отображающим домены абонента для манипулирования =, "оценивают" данные за домен, Вы могли бы иметь:

key: example.com
value: server="smtp.example.com" user="fred" pass="s3kr3t" submission=t

и затем:

# after "begin routers" and before the normal remote mail sending Router:
via_customer_server:
  driver = manualroute
  senders = *@cdb;/etc/mail/customers.cdb
  transport = customer_server_t
  address_data = ${lookup{$sender_address_domain}cdb{/etc/mail/customers.cdb}}
  route_data = ${extract{server}{${lookup{$sender_address_domain}cdb{/etc/mail/customers.cdb}}}

# after "begin transports"
customer_service_t:
  driver = smtp
  hosts_require_auth = ${extract{user}{$address_data}{*}{}}
  port = ${extract{submission}{$address_data}{587}{25}}
  # these next two will mandate TLS if tls is present, and turn on cert verification
  hosts_require_tls = ${extract{tls}{$address_data}{*}{}}
  tls_verify_certificates = ${extract{tls}{$address_data}{/etc/ssl/certs}{}}

# after "begin authenticators"
auth_plain:
  driver = plaintext
  public_name = PLAIN
  client_condition = ${if def:tls_cipher}
  client_send = ^${extract{user}{$address_data}}^${extract{pass}{$address_data}}

Как несколько примечаний: address_data на Маршрутизаторе сохранил результаты поиска для легкого доступа позже, route_data сделал тот же поиск, но на практике который будет использованием кэшируемые результаты address_data, и это довольно завершено, хотя не протестировано, пример.

Можно сделать другой материал вместо cdb, я просто выбрал это наугад. В частности, LDAP ищет несколько атрибутов, возвратит данные в правильном формате за $ {извлечение...} оператор расширения для работы с, таким образом, это должно быть хорошо, если Вы хотите поместить данные в AD.

1
ответ дан 23 November 2019 в 13:01
  • 1
    закончил тем, что использовал hMailServer, но Ваши полные пробегают, помог мне значительно! –  hackerhasid 9 August 2010 в 16:44

Теги

Похожие вопросы