Назад | Перейти на главную страницу

Как сделать Amazon SES методом отправки почты с моего сервера по умолчанию?

Я хочу начать использовать Amazon SES для всех писем с нашего сервера. У нас есть несколько дизайнеров-фрилансеров с PHP-хостингом, несколько веб-приложений Django / Python, а также некоторые системные утилиты, которые отправляют электронные письма.

Поэтому я хотел бы, чтобы почтовая функция PHP, почтовая команда командной строки и наши приложения на Python могли использовать ее, желательно без необходимости настраивать их все по-своему.

Я думаю, что мне нужно, чтобы что-то вроде Postfix работало на локальном хосте и использовало SES для его доставки, но я не знаю, как это сделать.

В документации Amazon указано, что мне нужно настроить мой агент передачи почты (MTA), чтобы он вызывал сценарий ses-send-email.pl. У меня есть сценарий, но я не знаю, как этого добиться.

Я на правильном пути? Если да, как я могу настроить Postfix для использования этого сценария?

Вот некоторые элементы, скопированные с Руководство разработчика SES:

Чтобы интегрировать ses-send-email.pl с Postfix:

  1. Откройте файл master.cf. Во многих системах этот файл находится в /etc/postfix каталог.
  2. Настройте новый почтовый транспорт, добавив следующие две строки в 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}
    

Обратите внимание на следующее об этом примере:

  • Строка флагов начинается как минимум с одного символа пробела.
  • В параметре пользователя должен быть указан пользователь без полномочий root (т. Е. Пользователь, не являющийся администратором). mailuser только для иллюстративных целей.
  • В ses-send-email.pl скрипт и файл учетных данных находятся в каталоге / opt / Third-party / amazon.
  • Конечная точка для связи с Amazon SES: https://email.us-east-1.amazonaws.com

При необходимости вы должны изменить эти параметры.

  1. Откройте файл main.cf в том же каталоге, что и master.cf, и измените его следующим образом:

    1. Найдите строку default_transport:

      • Если он существует, измените его так, чтобы он выглядел так:

        default_transport = aws-email
        
      • Если его нет, добавьте новую строку с предыдущим содержимым.

    2. По завершении сохраните файл main.cf.
  2. Перезагрузите сервер 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