Mengintegrasikan Amazon SES dengan Postfix - Layanan Email Sederhana Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengintegrasikan Amazon SES dengan Postfix

Postfix adalah alternatif dari Sendmail Message Transfer Agent () yang banyak digunakan. MTA Untuk informasi tentang Postfix, buka http://www.postfix.org. Prosedur di topik ini akan berfungsi dengan Linux, macOS, atau Unix.

catatan

Postfix adalah aplikasi pihak ke tiga, dan tidak dikembangkan atau didukung oleh Amazon Web Services. Prosedur di bagian ini disediakan hanya untuk tujuan informasi saja, dan dapat berubah tanpa pemberitahuan.

Prasyarat

Sebelum Anda menyelesaikan prosedur dalam bagian ini, Anda harus melakukan tugas berikut:

  • Copot pemasangan aplikasi Sendmail jika diinstal pada sistem Anda. Prosedur untuk menyelesaikan langkah ini bervariasi tergantung pada sistem operasi yang Anda gunakan.

    penting

    Berikut referensi ke sendmail mengacu pada perintah Postfixsendmail, jangan bingung dengan aplikasi Sendmail.

  • Instal Postfix. Prosedur untuk menyelesaikan langkah ini bervariasi tergantung pada sistem operasi yang Anda gunakan.

  • Instal paket SASL otentikasi. Prosedur untuk menyelesaikan langkah ini bervariasi tergantung pada sistem operasi yang Anda gunakan. Misalnya, jika Anda menggunakan sistem RedHat berbasis, Anda harus menginstal cyrus-sasl-plain paket. Jika Anda menggunakan sistem berbasis Debian atau Ubuntu, Anda harus menginstal paket libsasl2-modules.

  • Verifikasi alamat email atau domain yang akan digunakan untuk mengirim email. Untuk informasi lebih lanjut, lihat Membuat identitas alamat email.

  • Jika akun Anda masih berada di sandbox, Anda hanya dapat mengirim email ke alamat email terverifikasi. Untuk informasi lebih lanjut, lihat Minta akses produksi (Pindah dari SES kotak pasir Amazon).

Mengonfigurasi Postfix

Selesaikan prosedur berikut untuk mengonfigurasi server email Anda untuk mengirim email melalui Amazon SES menggunakan Postfix.

Untuk mengonfigurasi Postfix
  1. Di baris perintah, ketik perintah berikut:

    sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \ "smtp_sasl_auth_enable = yes" \ "smtp_sasl_security_options = noanonymous" \ "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \ "smtp_use_tls = yes" \ "smtp_tls_security_level = secure" \ "smtp_tls_note_starttls_offer = yes"
    catatan

    Jika Anda menggunakan Amazon SES di AWS Wilayah selain AS Barat (Oregon), ganti email-smtp.us-west-2.amazonaws.com dalam perintah sebelumnya dengan SMTP titik akhir Wilayah yang sesuai. Untuk informasi selengkapnya, lihat Wilayah dan Amazon SES.

  2. Di editor teks, buka file /etc/postfix/master.cf. Cari entri berikut:

    -o smtp_fallback_relay=

    Jika Anda menemukan entri ini, berikan komentar dengan menempatkan karakter # (hash) di awal baris. Simpan dan tutup file .

    Atau, jika entri ini tidak ada, lanjutkan ke langkah berikutnya.

  3. Di editor teks, buka file /etc/postfix/sasl_passwd. Jika dile tersebut belum ada, buat file tersebut.

  4. Tambahkan baris berikut ke /etc/postfix/sasl_passwd:

    [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
    catatan

    Ganti SMTPUSERNAME and SMTPPASSWORD dengan kredensi SMTP masuk Anda. Kredensi SMTP login Anda tidak sama dengan ID kunci AWS akses dan kunci akses rahasia Anda. Untuk informasi selengkapnya tentang jenis kredensial, lihat Memperoleh SES SMTP kredensi Amazon.

    Jika Anda menggunakan Amazon SES di AWS Wilayah selain AS Barat (Oregon), ganti email-smtp.us-west-2.amazonaws.com dalam contoh sebelumnya dengan SMTP titik akhir Wilayah yang sesuai. Untuk informasi selengkapnya, lihat Wilayah dan Amazon SES.

    Simpan dan tutup sasl_passwd.

  5. Pada prompt perintah, ketik perintah berikut untuk membuat file database hashmap yang berisi SMTP kredensil Anda:

    sudo postmap hash:/etc/postfix/sasl_passwd
  6. (Opsional) File /etc/postfix/sasl_passwd dan /etc/postfix/sasl_passwd.db yang Anda buat di langkah-langkah sebelumnya tidak dienkripsi. Karena file-file ini berisi SMTP kredensil Anda, kami sarankan Anda mengubah kepemilikan dan izin file untuk membatasi akses ke file tersebut. Untuk membatasi akses ke file-file ini:

    1. Pada prompt perintah, ketik perintah berikut untuk mengubah kepemilikan file:

      sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
    2. Pada prompt perintah, ketik perintah berikut untuk mengubah hak izin file sehingga hanya pengguna root saja yang dapat membaca atau menulis pada file tersebut:

      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
  7. Beri tahu Postfix di mana menemukan sertifikat CA (diperlukan untuk memverifikasi sertifikat SES server Amazon). Perintah yang Anda gunakan dalam langkah ini bervariasi berdasarkan sistem operasi Anda.

    • Jika Anda menggunakan Amazon Linux, Red Hat Enterprise Linux, atau distribusi terkait, ketik perintah berikut:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
    • Jika Anda menggunakan Ubuntu atau distribusi terkait, ketik perintah berikut:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
    • Jika Anda menggunakan macOS, Anda dapat membuat sertifikat dari rantai kunci sistem. Untuk menghasilkan sertifikat, ketik perintah berikut pada baris perintah:

      sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > /etc/ssl/certs/ca-bundle.crt

      Setelah Anda membuat sertifikat, ketik perintah berikut:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
  8. Ketik perintah berikut untuk memulai server Postfix (atau untuk memuat ulang pengaturan konfigurasi jika server sudah berjalan):

    sudo postfix start; sudo postfix reload
  9. Kirim email percobaan dengan mengetik berikut pada baris perintah, tekan Enter setelah setiap baris. Ganti sender@example.com dengan alamat email Dari Anda. Alamat Dari harus diverifikasi untuk digunakan dengan AmazonSES. Ganti recipient@example.com dengan alamat tujuan. Jika akun Anda masih berada di sandbox, alamat penerima juga harus diverifikasi. Akhirnya, baris akhir pesan harus berisi periode tunggal (.) tanpa konten lain.

    sendmail -f sender@example.com recipient@example.com From: Sender Name <sender@example.com> Subject: Amazon SES Test This message was sent using Amazon SES. .
  10. Periksa kotak pesan yang terkait dengan alamat penerima. Jika email tidak diterima, periksa folder email sampah Anda. Jika Anda masih tidak dapat menemukan email, periksa catatan surat di sistem yang digunakan untuk mengirim email (biasanya terletak di /var/log/maillog) untuk informasi selengkapnya.

Contoh penggunaan lanjutan

Contoh ini menunjukkan cara mengirim email yang menggunakan set konfigurasi, dan yang menggunakan MIME -multipart encoding untuk mengirim teks biasa dan HTML versi pesan, bersama dengan lampiran. Informasi ini juga mencakup tanda tautan, yang dapat digunakan untuk mengategorikan peristiwa klik. Isi email ditentukan di file eksternal, sehingga Anda tidak harus secara manual mengetik perintah di sesi Postfix.

Untuk mengirim MIME email multipart menggunakan Postfix
  1. Di editor teks, buat file baru bernama mime-email.txt.

  2. Di file teks, tempelkan konten berikut, ganti nilai merah dengan nilai yang sesuai untuk akun Anda:

    X-SES-CONFIGURATION-SET: ConfigSet From:Sender Name <sender@example.com> Subject:Amazon SES Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="YWVhZDFlY2QzMGQ2N2U0YTZmODU" --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: multipart/alternative; boundary="3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ" --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Amazon SES Test This message was sent from Amazon SES using the SMTP interface. For more information, see: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html> <head> </head> <body> <h1>Amazon SES Test</h1> <p>This message was sent from Amazon SES using the SMTP interface.</p> <p>For more information, see <a ses:tags="samplekey0:samplevalue0;samplekey1:samplevalue1;" href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html"> Using the Amazon SES SMTP Interface to Send Email</a> in the <em>Amazon SES Developer Guide</em>.</p> </body> </html> --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ-- --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="customers.txt" SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENh bmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixV bml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ== --YWVhZDFlY2QzMGQ2N2U0YTZmODU--

    Simpan dan tutup file.

  3. Di baris perintah, ketik perintah berikut. Ganti sender@example.com dengan alamat email Anda, dan ganti recipient@example.com dengan alamat email penerima.

    sendmail -f sender@example.com recipient@example.com < mime-email.txt

    Jika perintah berhasil berjalan, perintah keluar tanpa memberikan output apa pun.

  4. Periksa email di kotak masuk Anda. Jika pesan tidak terkirim, periksa log surat sistem Anda.