mysql — электронная почта, размещенная на Amazon SES, с рабочей почтой aws на php-скрипт, размещенный на ec2

У меня есть веб-сайт, размещенный на amazon ec2, и адрес электронной почты веб-сайтов, размещенных на amazon SES, мы также используем рабочую почту amazon для доступа к электронным письмам и их отправки. Однако сейчас мы хотели бы направить всю электронную почту, отправленную на адрес электронной почты наших веб-сайтов, в скрипт php mysql (мы создаем систему управления коммуникациями).

Однако я не могу найти какие-либо предложения или документацию о том, как я смогу пересылать электронные письма, полученные в папку входящих сообщений aws workmail, во внешний размещенный файл php?

1

Решение

Второй ответ, потому что я не правильно прочитал вопрос (извините, извините).

Вложения электронной почты отправляются как часть тела сообщения, используя MIME кодировка. Получая электронные письма от SES, вы получите их в этом необработанном формате как часть тела сообщения.

Однако SES ограничит размер сообщения (включая вложения) до 150 КБ при отправке в SNS.

Для поддержки больших сообщений (30 МБ) вы захотите сохранить их в S3. Чтобы получать событие SNS при поступлении нового сообщения, вам нужно настроить S3 Уведомление о событии за s3:ObjectCreated:*,

Оттуда процесс тот же — вашему приложению потребуется извлечь объект из S3 и извлечь сообщения и вложения из тела объекта, при необходимости удалив исходное сообщение из S3, когда вы закончите.

Единственная приличная библиотека PHP для извлечения вложений PHP-мим-почта-анализатор и есть достойный пример на их странице GitHub.

Я адаптировал пример, чтобы показать соответствующие части:

$Parser = new PhpMimeMailParser\Parser();
$Parser->setText($raw_email);

foreach ($Parser->getAttachments(true) as $attachment) {
echo 'Filename : '.$attachment->getFilename().'<br />'; // logo.jpg
echo 'Filesize : '.filesize($attach_dir.$attachment->getFilename()).'<br />'; // 1000
echo 'Filetype : '.$attachment->getContentType().'<br />'; // image/jpeg
echo 'MIME part string : '.$attachment->getMimePartStr().'<br />'; // (the whole MIME part of the attachment)
}
1

Другие решения

Вы ищете сервис AWS Simple Email Service (SES). AWS добавил поддержку обработки входящей электронной почты в 2015 году.

Документация здесь

Для начала вам необходимо настроить & проверьте свой домен в SES и укажите домены DNS MX запись в SES, как указано в консоли.

Оттуда вы можете создавать правила, основанные на адресе назначения для отправки сообщений о: Lambda Function; S3; SNS; или рабочая почта.

Для вашего случая обработки в EC2 вы бы хотели опубликовать сообщения в теме SNS с подписанной очередью SQS. Тогда вашему серверу приложений на EC2 потребуется принимать сообщения от SQS в рабочем потоке.

Это можно использовать для обработки всех сообщений в домене, на котором у вас есть WorkMail, однако, если ваш конкретный продукт не требует этого — я бы рекомендовал настроить поддомен специально для адресов электронной почты, которые будут обрабатываться автоматически.

0