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

Гибридный gmail MX + postfix для локальных аккаунтов

Вот установка:

У нас есть домен mydomain.com. Все находится на нашем собственном сервере, кроме общих учетных записей электронной почты, которые проходят через Gmail.

В настоящее время Gmail установлен как запись MX.

Сервер также имеет различные псевдонимы электронной почты, необходимые для поддержки трекеров ошибок и т. П. например bugs@mydomain.com | /path/to/issuetracker.script

Я борюсь с настройкой, которая позволяет следующее, как локально, так и из почтовых клиентов пользователя.

  1. guser1 - имеет учетную запись Gmail и локальную учетную запись
  2. guser2 - есть только учетная запись gmail
  3. ошибки - есть псевдоним канала в / etc / aliases для системы отслеживания проблем

Сценарии

Итак, первым ударом было создание транспортной карты. В этом сценарии наш сервер будет настроен как MX, а предназначенные для пользователя письма * отправляются в Gmail. Поместите пользователей Gmail на карту следующим образом:

guser1@mydomain.com smtp:gmailsmtp:25
guser2@mydomain.com smtp:gmailsmtp:25

Проблемы:

Второй удар заключался в том, чтобы установить явные псевдонимы localhost в / etc / aliases и сделать переадресацию домена на mydomain. Это также требует настройки локального сервера как MX:

root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25

Проблемы: * Если я создаю транспортную карту для домена, который соответствует "$ myhostname", файл псевдонимов никогда не анализируется. Поэтому, когда локальный пользователь (или демон) отправляет электронное письмо вроде:

mail -s "testing" root < text.txt

Postfix игнорирует запись / etc / alias и сопоставляется с root@mydomain.com и пытается отправить его в сопоставление транспорта gmail.

Третий удар:

Создайте поддомен для ошибок, например bugs.mydomain.com. Установите MX для этого домена на локальный сервер и оставьте MX для mydomain.com серверу Gmail.

Проблемы: * Не решает проблему с локальными аккаунтами. Поэтому, когда трекер ошибок отвечает на письмо от guser1@mydomain.com, он использует локальный транспорт, и пользователь никогда не получает письмо.

% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = 
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks,   reject_invalid_hostname,   reject_non_fqdn_sender,   reject_non_fqdn_recipient,   reject_unknown_sender_domain,   reject_unknown_recipient_domain,   reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport

Переключитесь на виртуальный. Читайте ВИРТУАЛЬНЫЕ Документы по постфиксу. Так у вас будет намного больше контроля.

main.cf:

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:

виртуальный, перечислите всех ваших пользователей

localuser  localuser
somealias  localuser
guser1     guser1@gmail.mydomain.com,guser1
bugs       issuetracker@issuetracker.mydomain.com

virtualmailboxmap, список всех локальных пользователей, правая сторона не имеет значения!

 localuser   rhsunused
 guser1      rhsunused

транспорт:

 mydomain.com      local:
 gmail.mydomain.com smtp:gmailsmtp:25
 issuetracker.mydomain.com smtp:[issuetracker ip]:25

У меня это было с cyrus: transport для локальных учетных записей. Я знаю, что это не полный ответ на все ваши вопросы, но это может быть началом.