У нас есть домен, настроенный на Amazon SES. Мне нужно передать входящие электронные письма на определенный адрес в PHP-скрипт на экземпляре EC2 для обработки. Я сделал это на общих серверах в Cpanel, используя пересылку для |/opt/alt/php56/usr/bin/php -q /home/somesite/public_html/folder/somescript.php
но я не уверен, как настроить что-то подобное (если возможно) на SES, и Google не был моим другом в моих попытках найти решение. Поэтому мой конкретный вопрос: как мне настроить такой вид пересылки в SES для передачи входящих писем в скрипт PHP на EC2?
Спасибо за любую помощь.
Предполагая, что SES был настроен для правильного получения электронных писем, я думаю, вы хотите что-то вроде следующего:
Запустите крошечный экземпляр ec2, установите php и apache, поместите ваш php-скрипт в публичный html-каталог (обычно /var/www/html
). Цель — сделать ваш php-скрипт доступным напрямую для других сервисов AWS.
Теперь настройте SES «Правило получения» вызвать СНС «Акция» который перенаправляет все тело письма на конкретный URL, в данном случае URL на ваш скрипт php.
Теперь все электронные письма, полученные SES, запускают действие SNS, при котором ваш php-скрипт вызывает тело письма в качестве параметра вашего скрипта, и он доступен для обработки.
Но вам нужно убедиться, что вы не разрешаете доступ к своему экземпляру ec2 во внешний мир, поэтому измените группу безопасности, чтобы разрешить только http-запросы из той же подсети (плюс внешние ssh-соединения, чтобы вы могли управлять коробкой) ,
Улучшение вышесказанного будет заключаться в размещении вашего php-скрипта, который обрабатывает содержимое электронной почты как функцию непосредственно внутри AWS Lambda, вместо того, чтобы платить за запуск экземпляра ec2, который сидит там и ничего не делает большую часть времени.
Php является лямбда-поддерживаемым языком.
Я бы порекомендовал сделать это так, как я предлагал сначала, а затем попытаться перенести скрипт php в Lambda, чтобы сэкономить деньги (Lambda в значительной степени бесплатна для большинства рабочих нагрузок, пока все не станет абсурдным)
Других решений пока нет …