Bagaimana saya bisa menjadikan Amazon SES metode pengiriman email dari server saya?

14

Saya ingin mulai menggunakan Amazon SES untuk semua email dari server kami. Kami memiliki beberapa desainer freelance dengan hosting PHP, beberapa aplikasi web Django / Python dan juga beberapa utilitas sistem yang mengirim email.

Jadi saya ingin memiliki fungsi surat PHP, perintah surat perintah dan aplikasi python kami semua dapat menggunakannya, lebih disukai tanpa harus mengatur semuanya dengan cara mereka sendiri.

Saya pikir yang saya butuhkan adalah memiliki sesuatu seperti Postfix yang berjalan di localhost dan menggunakan SES untuk pengirimannya, tetapi saya tidak tahu bagaimana cara melakukannya.

Status dokumen Amazon saya perlu mengatur agen transfer surat saya (MTA) sehingga memanggil skrip ses-send-email.pl. Saya memiliki skrip tetapi saya tidak yakin bagaimana mencapainya.

Apakah saya di jalur yang benar? Jika demikian, bagaimana saya bisa mengonfigurasi Postfix untuk menggunakan skrip itu?

Jake
sumber

Jawaban:

14

Berikut adalah beberapa item yang disalin dari panduan pengembang SES :

Untuk mengintegrasikan ses-send-email.pl dengan Postfix:

  1. Buka file master.cf. Pada banyak sistem, file ini berada di /etc/postfixdirektori.
  2. Konfigurasikan pengiriman surat baru dengan menambahkan dua baris berikut ke master.cffile, dan kemudian simpan file.

    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}
    

Perhatikan hal berikut tentang contoh ini:

  • Garis bendera dimulai dengan setidaknya satu karakter spasi.
  • Parameter pengguna harus menentukan pengguna non-root (yaitu, pengguna nonadministratif). Pengguna mailuserhanya untuk tujuan ilustrasi.
  • The ses-send-email.plScript dan Berada kredensial file dalam / opt / pihak ketiga / direktori amazon.
  • Titik akhir untuk berkomunikasi dengan Amazon SES adalah https://email.us-east-1.amazonaws.com

Anda harus memodifikasi parameter ini jika perlu.

  1. Buka file main.cf di direktori yang sama dengan master.cf dan modifikasi sebagai berikut:

    1. Cari baris default_transport:

      • Jika ada, ubah sehingga terlihat seperti ini:

        default_transport = aws-email
        
      • Jika tidak ada, tambahkan baris baru dengan konten sebelumnya.

    2. Simpan file main.cf saat Anda selesai.
  2. Mulai ulang server Postfix Anda.

    /etc/init.d/postfix restart
    

Perhatikan bahwa perintah ini mungkin tidak persis sama di server khusus Anda. Sejak saat ini, email keluar Anda dikirim melalui Amazon SES. Anda dapat mengujinya dengan mengirim pesan email melalui server Postfix Anda, dan kemudian memverifikasi bahwa email itu tiba di tujuannya. Jika pesan tidak terkirim, periksa log surat sistem Anda jika ada kesalahan. Pada banyak sistem, ini adalah/var/log/mail.log

- Saya membuat blog sederhana yang menggabungkan semua yang saya coba baru-baru ini di Amazon Cloud dan SES. Berikut ini tautannya: http://netwiser.blogspot.com/2011/02/setup-amazon-ses-to-relay-email-by.html

Netwiser
sumber
Keren terima kasih. Saya berasumsi ini berarti mengonfigurasi postfix adalah cara yang tepat untuk menyelesaikan masalah saya. Saya akan mencoba ini dan segera menerima jawaban Anda.
Jake
1

Karena Anda meng-hosting aplikasi Python / Django di server Anda, Anda mungkin menemukan itu lebih baik untuk mengaitkan Postfix ke setara dengan Python dari skrip AWS Perl. Panduan ini memiliki rincian:

http://aws.amazon.com/articles/2405502737055650

Atau, jika Anda ingin menggunakan skrip Perl tetapi menemukan (seperti saya) bahwa modul CPAN Anda sudah ketinggalan zaman, rute yang lebih mudah mungkin dengan menginstal dependensi melalui manajer paket sistem operasi Anda. Misalnya, di ubuntu, Anda dapat melakukan ini dengan:

sudo apt-get install libio-socket-ssl-perl libxml-libxml-perl
Tobias McNulty
sumber