Як я можу зробити Amazon SES способом надсилання пошти зі свого сервера за замовчуванням?


14

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

Тож я хотів би мати функцію пошти PHP, команду електронної пошти команди та наші програми python, щоб вони могли її використовувати, бажано, не встановлюючи їх по-своєму.

Я думаю, що мені потрібно - мати щось на зразок Postfix, що працює на localhost і використовує SES для його доставки, але я не знаю, як це зробити.

Документи Amazon стану мені потрібно налаштувати агент передачі пошти (MTA), щоб він викликав сценарій ses-send-email.pl. У мене є сценарій, але я не впевнений, як цього досягти.

Я на правильному шляху? Якщо так, то як я можу налаштувати Postfix для використання цього сценарію?

Відповіді:


8

Amazon щойно випустила SMTP-доступ до SES. Сьогодні вранці я скористався швидким посиланням для цього: http://www.millcreeksys.com/2011/12/14/how-to-configure-your-postfix-server-to-relay-email-through-amazon-simple -mail-service-ses /


Не пощастивши з sender_dependent_relayhost ... вся електронна пошта обходить оглушення, якісь пропозиції? :)
CMag

14

Ось деякі елементи, скопійовані з посібника для розробників 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}
    

Зверніть увагу на наступний приклад:

  • Лінія прапорів починається щонайменше з одного символу пробілу.
  • Користувацький параметр повинен вказувати некористувального користувача (тобто неадміністративного користувача). Користувач mailuserпризначений лише для ілюстративних цілей.
  • ses-send-email.plСценарій і ідентифікаційна файл Проживати в / Opt / третя сторона / амазонці каталозі.
  • Кінцевою точкою спілкування з Amazon SES є https://email.us-east-1.amazonaws.com

Ви повинні змінити ці параметри у відповідних випадках.

  1. Відкрийте файл main.cf в тій самій директорії, що і master.cf, і змініть його наступним чином:

    1. Шукайте лінію за замовчуванням:

      • Якщо він існує, змініть його так, щоб він виглядав так:

        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


Дивовижне, спасибі Я припускаю, що це означає, що налаштування постфікса - це правильний спосіб вирішити мою проблему. Я спробую скоріше прийняти вашу відповідь.
Джейк

1

Оскільки ви розміщуєте програми 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.