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

Postfix - необходимо регистрировать электронную почту, а затем перенаправлять тому же пользователю другой домен

Моя цель - добавить электронные письма в БД, а затем отправить их пользователю в другом домене.

Мой почтовый сервер размещен в другом месте с использованием моего домена (me@example.com). Чтобы это заработало, я установил postfix на сервере, который получает почту для поддомена, скажем, "process.example.com". Я последовал за эти инструкции чтобы заставить работать трубопровод PHP.

Я установил это с помощью сценария PHP, который анализирует электронное письмо, регистрирует его, затем повторно создает электронное письмо и отправляет его. Моя проблема в том, что некоторые сообщения не выглядят хорошо после анализа и повторной сборки. Я понял, что могу делать это на своем собственном горьком опыте. Для этого необходимо получить электронное письмо от me@process.example.com, вызвать моего milter для обработки, изменить адрес TO на me@example.com и отправить его по пути.

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

Может ли кто-нибудь помочь мне с моей конфигурацией постфикса ...

По запросу, вот вывод для postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
default_privs = apache
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = 
luser_relay = catchall
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
milter_default_action = accept
milter_protocol = 2
mydestination = $myhostname, localhost.$mydomain, localhost, process.example.com
mynetworks = 168.100.189.0/28, 127.0.0.0/8
mynetworks_style = host
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = $smtpd_milters
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_milters = inet:127.0.0.1:8891
unknown_local_recipient_reject_code = 550

Каждое электронное письмо, полученное с помощью postfix, всегда передается в milter. Так что не стоит об этом беспокоиться.

Чтобы переписать, вы можете использовать recipient_canonical_maps Вот.

В main.cf добавьте этот параметр

recipient_canonical_maps  = hash:/etc/postfix/process2main

И в /etc/postfix/process2main добавить эту строку

me@process.example.com me@example.com

Это перепишет получатель с me@process.example.com на me@example.com

Видеть эта страница узнать, как работает канонический