Отправьте всю местную почту в единственное внешнее электронное письмо

Я пытаюсь отправить всю местную почту в единственное внешнее электронное письмо, с помощью серверов SMTP Google (я получил ту работу после этого хорошего учебного руководства).

Используя работу серверов SMTP Google, поскольку я могу отправить почту во внешнюю работу адресов с помощью почты от mailutils.

Перенаправление местной почты на внешний адрес электронной почты не работает. При отправке почты для укоренения от моего тестового использования учетной записи:

echo "Body" | mail -s "Test Postfix To Root" root
  • Я никогда не получаю сообщение
  • Ничто нового не поднимается в/var/log/mail.err
  • Это поднимается в /var/log/mail.log
Sep  4 18:48:06 desktop1204test postfix/pickup[5535]: C9326EE26: uid=1000 from=
Sep  4 18:48:06 desktop1204test postfix/cleanup[5702]: C9326EE26: message-id=
Sep  4 18:48:06 desktop1204test postfix/qmgr[5534]: C9326EE26: from=, size=401, nrcpt=1 (queue active)
Sep  4 18:48:06 desktop1204test postfix/local[5704]: C9326EE26: to=, orig_to=, relay=local, delay=0.03, delays=0.02/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Sep  4 18:48:06 desktop1204test postfix/qmgr[5534]: C9326EE26: removed

Мой /etc/postfix/main.cf:

inet_interfaces = loopback-only
mynetworks = loopback-only
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
## I commented the below two lines out, as they conflicted with the accepted answer
####virtual_alias_domains = localhost.localdomain
####virtual_alias_maps = hash:/etc/postfix/virtual
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

Мой etc/aliases:

# See man 5 aliases for format
postmaster:    root

Мой/etc/postfix/virtual:

@localhost.localdomin        someone@somewhere.com

Как я могу получить его работа? Я не хочу, чтобы любая местная почта прибыла локально, они должны все переходить в someone@somewhere.com.

2
задан 5 September 2013 в 02:07

2 ответа

Это может быть выполнено через виртуальный regexp (/etc/postfix/virtual-regexp)

/.+@.+/ someone@somewhere.com

затем в main.cf:

virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp

и mapfile:

postmap /etc/postfix/virtual-regexp

Это должно добиться цели для всех местных почт (иначе, необходимо указать все адреса на виртуальном),

2
ответ дан 5 September 2013 в 02:07

Для тех, кто хочет отправлять почту на другие домены в обычном режиме (например, на пустом клиенте только для отправки), и получает почту для системных учетных записей, доставляемых удаленно, вы создаете /etc/postfix/virtual-regexp. В нем либо сопоставьте все системные учетные записи, у которых нет реальной входящей почты, с другой:

/^\(root\|postmaster\|postfix|etc\)@domain\.example$/ person@domain.example

или сопоставьте все учетные записи, которые не известны реальным входящим почтовым ящикам (не делайте отступ if): [ 1117]

if /@domain\.example$/
!/^\(person\|anotherperson\|peeps\)@/ person@domain.example
endif

Это много легче, если ваша настройка myorigin в /etc/postfix/main.cf отличается от ваших реальных доменов входящих (например, субдомен mail.domain.example), так как вы можете соответствовать все так:

/@mail\.domain\.example$/ person@domain.example

Как говорили другие, не запускайте postmap для этого файла и удалите /etc/postfix/virtual-regexp.db, если он существует.

Используйте новое отображение, добавив

local_recipient_maps =
virtual_alias_maps = regexp:/etc/postfix/virtual-regexp

к /etc/postfix/main.cf.


Я также добавил

root: person@domain.example

в /etc/aliases и выполнил команду newaliases, но я думаю, что конфигурация виртуального псевдонима Postfix переопределяет ее.

0
ответ дан 5 September 2013 в 02:07

Другие вопросы по тегам:

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