我已经阅读了一些文章,包括这里的post,但似乎没有一个清晰的简洁的答案。
我在CentOS上的EC2实例上运行Postfix。 我想将一个域的所有电子邮件(@ support.mydomain.com)指向一个PHP脚本。 服务器主机名未设置为域(主机名是默认ip-1-2-3-4.awsregion.internal.compute)。
我为support.mydomain.com设置了一个MXlogging,指向www.mydomain.com。
从我读到的,我需要一个virtual alias来处理域。
我努力了:
@support.mydomain.com apache@localhost添加到/etc/postfix/virtual postmap /etc/postfix/virtual virtual_alias_maps = :hash:/etc/postfix/virtual和inet_interfaces=all到/etc/postfix/main.cf apache: "|php -q /var/www/mydomain/my-script.php" /var/log/maillog显示电子邮件的一个“`454 4.7.1中继访问被拒绝“的错误 – 至less这显示DNS /防火墙是好的…
将不胜感激从哪里开始或从一开始的新指南。
令人惊讶的是,Wombles评论帮助,我非常接近我的第一个问题。
这对我有效。 这是为了将一个域(而不是主机名)的所有电子邮件redirect/pipe道到使用Postfix的CentOS服务器上的php脚本(假设你已经处理了DNS和selinux /防火墙):
虚拟别名
通过更新/etc/postfix/virtual将电子邮件redirect到本地用户:
@support.mydomain.com apache@localhost
使用postmap /etc/postfix/virtual重build虚拟别名db。
告诉Postfix在/etc/postfix/main.cf使用我们的虚拟别名db:
virtual_alias_maps = hash:/etc/postfix/virtual
虚拟域
更新/etc/postfix/main.cf与虚拟域,所以它知道接受电子邮件为您的域名,否则你会得到一个“454 4.7.1中继访问被拒绝”的错误:
virtual_alias_domains = support.mydomain.com
接受连接
告诉后缀允许通过上传/etc/postfix/main.cf允许从互联网(不是本地)连接。
inet_interfaces=all
更新别名
更新/etc/aliases以将发往本地用户的电子邮件redirect到脚本:
#apache:root ( #apache:root你的本地用户的任何现有条目) apache: "|sudo /usr/bin/php -q /var/www/mydomain.com/my-script.php"
重build别名并重新启动Postfix
sudo newaliases sudo postfix reload sudo service postfix restart
我希望这可以帮助别人,似乎没有一个编译/简明的职位。