Я хочу начать использовать Amazon SES для всех писем с нашего сервера. У нас есть несколько дизайнеров-фрилансеров с PHP-хостингом, несколько веб-приложений Django / Python, а также некоторые системные утилиты, которые отправляют электронные письма.
Поэтому я хотел бы, чтобы почтовая функция PHP, почтовая команда командной строки и наши приложения на Python могли использовать ее, желательно без необходимости настраивать их все по-своему.
Я думаю, что мне нужно, чтобы что-то вроде Postfix работало на локальном хосте и использовало SES для его доставки, но я не знаю, как это сделать.
В документации Amazon указано, что мне нужно настроить мой агент передачи почты (MTA), чтобы он вызывал сценарий ses-send-email.pl. У меня есть сценарий, но я не знаю, как этого добиться.
Я на правильном пути? Если да, как я могу настроить Postfix для использования этого сценария?
Вот некоторые элементы, скопированные с Руководство разработчика SES:
Чтобы интегрировать ses-send-email.pl с Postfix:
/etc/postfix
каталог.Настройте новый почтовый транспорт, добавив следующие две строки в master.cf
файл, а затем сохраните файл.
aws-email unix - n n - - pipe
flags=R user=mailuser argv=/opt/third-party/amazon/ses-send-email.pl -r -k /opt/third-party/amazon/aws-credentials -e https://email.us-east-1.amazonaws.com -f ${sender} ${recipient}
Обратите внимание на следующее об этом примере:
mailuser
только для иллюстративных целей.ses-send-email.pl
скрипт и файл учетных данных находятся в каталоге / opt / Third-party / amazon.При необходимости вы должны изменить эти параметры.
Откройте файл main.cf в том же каталоге, что и master.cf, и измените его следующим образом:
Найдите строку default_transport:
Если он существует, измените его так, чтобы он выглядел так:
default_transport = aws-email
Если его нет, добавьте новую строку с предыдущим содержимым.
Перезагрузите сервер Postfix.
/etc/init.d/postfix restart
Обратите внимание, что эта команда может не совпадать на вашем конкретном сервере. С этого момента ваша исходящая электронная почта будет отправляться через Amazon SES. Вы можете проверить это, отправив сообщение электронной почты через свой сервер Postfix, а затем убедившись, что оно прибыло по назначению. Если сообщение не доставлено, проверьте системный почтовый журнал на наличие ошибок. Во многих системах это /var/log/mail.log
- Я создал простой блог, в котором собрано все, что я недавно пробовал в Amazon Cloud и SES. Вот ссылка : http://netwiser.blogspot.com/2011/02/setup-amazon-ses-to-relay-email-by.html
Amazon только что выпустила SMTP-доступ к SES. Сегодня утром я быстро придумал, как это сделать: http://www.millcreeksys.com/2011/12/14/how-to-configure-your-postfix-server-to-relay-email-through-amazon-simple-email-service-ses/
Поскольку вы размещаете приложения Python / Django на своем сервере, вы можете счесть предпочтительным подключить Postfix к Python-эквиваленту сценариев AWS Perl. В этом руководстве есть подробности:
http://aws.amazon.com/articles/2405502737055650
В качестве альтернативы, если вы хотите использовать сценарии Perl, но обнаружили (как и я), что ваши модули CPAN ужасно устарели, более простым путем может быть установка зависимостей через диспетчер пакетов вашей операционной системы. Например, в ubuntu это можно сделать с помощью:
sudo apt-get install libio-socket-ssl-perl libxml-libxml-perl