我的目标是将电子邮件添加到数据库,然后将其发送给不同域的用户。
我的邮件服务器使用我的域名托管在其他地方,([电子邮件保护])。为了实现这一点,我在服务器上设置了 postfix,以便为子域(例如“process.example.com”)获取邮件。我遵循这些说明使 PHP 管道正常工作。
我使用 PHP 脚本进行了设置,该脚本解析电子邮件、记录电子邮件,然后重建电子邮件并发送。我的问题是,有些消息在解析和重新组装后看起来不太好。我意识到我可能做得很困难。这需要从[电子邮件保护],打电话给我的邮件处理,将邮件改成[电子邮件保护]并将其发送出去。
我读过关于几个 Postfix 进程的文章,比如传输、中继和规范。我想我需要使用其中的一个,但没有说明。我也不确定如果我使用中继或规范等进程,我的邮件过滤器是否会被调用。
有人能帮我解决一下 postfix 配置吗...
根据要求,这是 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
答案1
postfix 收到的每封电子邮件都会被发送到 milter。所以你不必为此担心。
要进行重写,您可以使用收件人规范映射这里。
在 main.cf 中添加此参数
recipient_canonical_maps = hash:/etc/postfix/process2main
并/etc/postfix/process2main
添加这一行
[email protected] [email protected]
看这一页了解规范的工作原理