Я прочитал несколько статей, включая сообщения здесь, но, похоже, нет четкого краткого ответа.
У меня CentOS7 работает под управлением Postfix на экземпляре EC2 на AWS. Я хочу направлять все электронные письма для домена (@ support.mydomain.com) в сценарий PHP. Имя хоста сервера не соответствует домену (имя хоста по умолчанию ip-1-2-3-4.awsregion.internal.compute).
Я установил запись MX для support.mydomain.com, указывающую на 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 Relay access denied» - по крайней мере, это показывает, что DNS / брандмауэры в порядке ...
Был бы признателен, куда идти дальше, или новое руководство с самого начала.
Удивительно, но комментарий Уомбла помог, и я был очень близок со своим первоначальным вопросом.
Это сработало для меня. Это нужно для перенаправления / перенаправления всей электронной почты для одного домена (не в имени хоста) в php-скрипт на сервере CentOS с использованием Postfix (при условии, что вы имеете дело с DNS и selinux / firewall):
Виртуальный псевдоним
Перенаправить электронное письмо локальному пользователю, обновив /etc/postfix/virtual
:
@support.mydomain.com apache@localhost
Восстановите виртуальный псевдоним db с помощью postmap /etc/postfix/virtual
.
Скажите Postfix использовать наш виртуальный псевдоним db в /etc/postfix/main.cf
:
virtual_alias_maps = hash:/etc/postfix/virtual
Виртуальный домен
Обновить /etc/postfix/main.cf
с виртуальным доменом, поэтому он знает, что принимать электронную почту для вашего домена, иначе вы получите ошибку «454 4.7.1 Relay access denied»:
virtual_alias_domains = support.mydomain.com
Принять подключения
Скажите postfix, чтобы разрешить соединения из Интернета (не только локального), обновив /etc/postfix/main.cf
:
inet_interfaces=all
Обновить псевдоним
Обновить /etc/aliases
для перенаправления электронной почты, адресованной локальному пользователю, в сценарий:
#apache:root
(отключите любую существующую запись для вашего локального пользователя) apache: "|sudo /usr/bin/php -q /var/www/mydomain.com/my-script.php"
Восстановить псевдонимы и перезапустить Postfix
sudo newaliases
sudo postfix reload
sudo service postfix restart
Надеюсь, это поможет другим, похоже, по этому поводу не было скомпилированной / сжатой публикации.