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

Exim4: получать и пересылать электронную почту для нескольких доменов

Я использую VPS для размещения веб-сайтов моих клиентов. У них очень ограниченные потребности в электронной почте (в основном им нужен адрес info@clientdomain.com, который пересылается на их учетную запись gmail). Я попытался настроить exim4 (на ubuntu 16.04) для этого, но я просто получил 550 Unrouteable address.

Exim в настоящее время отправляет почту нормально. Но мой файл / etc / aliases не имеет значения:

postmaster:                     root
www-data:                       root
root:                           MYUSER@gmail.com
repairs@example-client1.co.uk:  example-client1@gmail.com
andrea@example-client2.com:     example-client2@gmail.com
me@MYDOMAIN.com:                MYSUER@gmail.com

Я побежал dpkg-reconfigure exim4 и сообщил ему домены, которые я хочу принять:

dc_eximconfig_configtype='internet'
dc_other_hostnames='#######.com; ######.com; ####.com;#####.co.uk;'
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

Конфигурация exim'a сбивает меня с толку, а документация не помогает. Я бы хотел настроить exim «как убунту», чтобы будущие обновления системы не нарушили мою настройку.

Я ценю любую помощь, которую вы можете предложить.

Это краткое изложение ответа @BillThor с некоторыми дополнительными деталями:

Шаг 1

редактировать /etc/exim4/update-exim4.conf и установить dc_other_hostnames чтобы включить все домены, на которые вы будете пересылать почту. (Если вы забудете это сделать, сообщения будут возвращены).

Шаг 2

Создать каталог /etc/exim4/virtual и добавьте по одному файлу для каждого домена, назвав его в точности именем домена. Заполните файлы псевдонимами, которые хотите переслать. Например

# File: /etc/exim4/virtual/example.com

# This will forward me@example.com to myemail@gmail.com
me: myemail@gmail.com

# This will forward postmaster@example.com to dave@gmail.com
postmaster: dave@gmail.com

Шаг 3

Создать новый файл /etc/exim4/conf.d/router/350_local-config_vdomain_aliases, с содержанием:

# This router handles aliasing using traditional /etc/aliases type files.
#
#### NB  You must ensure that /etc/exim/virutual/${domain} file exist
####
#### This works with the standard "name : destination" alias format

# Domain aliases
vdomain_aliases:
  debug_print = "R: vdomain_aliases for $local_part@$domain"
  driver = redirect
  allow_fail
  allow_defer
  domains = dsearch;/etc/exim4/virtual
  data = ${lookup{$local_part}lsearch*@{/etc/exim4/virtual/$domain}}
  qualify_preserve_domain

Шаг 4

Бегать:

update-exim4.conf
service exim4 restart

Спасибо за вашу помощь @BillThor

Судя по вашему описанию, вы должны настроить свой сервер в качестве основного MX для доменов ваших клиентов. Есть несколько адресов, которые, вероятно, следует доставить вам, например abuse, postmaster, webmaster и hostmaster. Они должны обрабатываться по умолчанию /etc/aliases файл.

Конфигурация по умолчанию использует только локальную часть для поиска псевдонимов. Вам нужно будет специально обрабатывать сообщения своих клиентов. При пересылке в Gmail вы можете захотеть отправить сообщение повторно, а не пересылать его. Это должно решить проблемы SPF и DMARC.

Если вы - вторичный MX, вам нужно установить переменную dc_relay_domains. Это должен быть список доменов, для которых вы будете принимать электронную почту в качестве вторичного MX, разделенных (':'). Пробелы не обязательны, но делают список более удобным для чтения.

Документация к файлу доступна с помощью команды man update-exim4.conf. Вы также можете ознакомиться с Спецификация агента передачи почты Exim документ.

Команда sudo dpkg-reconfigure exim4-config предоставит управляемое обновление /etc/exim4/update-exim4.conf.conf. Однако при желании вы можете отредактировать файл вручную.

Вы можете добавить домены, для которых вы являетесь вторичным MX, в / etc / exim4 / local_rcpt_callout. Пожалуйста, прочтите документацию, чтобы убедиться, что это уместно. Возврат почты для доменов, для которых вы являетесь второстепенными, после того, как вы приняли сообщение, скорее всего, вызовет спам обратного рассеивания. Это может привести к попаданию вашего сервера в черный список.

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

# This router handles aliasing using traditional /etc/aliases type files.
#
#### NB  You must ensure that /etc/exim/virutual/${domain} file exist
####
#### This works with the standard "name : destination" alias format

# Domain aliases
vdomain_aliases:
  debug_print = "R: vdomain_aliases for $local_part@$domain"
  driver = redirect
  allow_fail
  allow_defer
  domains = dsearch;/etc/exim4/virtual
  data = ${lookup{$local_part}lsearch*@{/etc/exim4/virtual/$domain}}
  qualify_preserve_domain

В других ответах нет ничего плохого, но я хотел бы сослаться на официальную спецификацию exim (= документация):

https://www.exim.org/exim-html-current/doc/html/spec_html/ch-some_common_configuration_settings.html#SECTvirtualdomains

Есть большая вероятность, что это будет актуальная и поддерживаемая документация на долгие годы.