Mengintegrasikan Amazon SES dengan Sendmail - 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 Sendmail

Sendmail dirilis pada awal 1980-an, dan telah terus ditingkatkan sejak saat itu. Ini adalah agen transfer pesan (MTA) yang fleksibel dan dapat dikonfigurasi dengan komunitas pengguna yang besar. Sendmail diakuisisi oleh Proofpoint pada tahun 2013, namun Proofpoint terus menawarkan versi sumber terbuka Sendmail. Anda dapat mengunduh versi sumber terbuka Sendmail dari situs web Proofpoint, atau melalui manajer paket dari sebagian besar distribusi Linux.

Prosedur di bagian ini menunjukkan kepada Anda cara mengonfigurasi Sendmail untuk mengirim email melalui Amazon. SES Prosedur ini diuji pada server yang menjalankan Ubuntu 18.04.2LTS.

catatan

Sendmail 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 menyelesaikan prosedur di bagian ini, Anda harus menyelesaikan langkah-langkah berikut:

  • Instal paket Sendmail di server Anda.

    catatan

    Tergantung pada distribusi sistem operasi yang Anda gunakan, Anda mungkin juga perlu menginstal paket berikut: sendmail-cf, m4, dan cyrus-sasl-plain.

  • Verifikasi identitas untuk digunakan sebagai alamat Dari Anda. Untuk informasi selengkapnya, lihat Membuat identitas alamat email.

    Jika akun Anda ada di SES kotak pasir Amazon, Anda juga harus memverifikasi alamat yang Anda kirimi email. Untuk informasi selengkapnya, lihat Minta akses produksi (Pindah dari SES kotak pasir Amazon).

Jika Anda menggunakan Amazon SES untuk mengirim email dari EC2 instans Amazon, Anda juga harus menyelesaikan langkah-langkah berikut:

  • Anda mungkin perlu menetapkan Alamat IP Elastis ke EC2 instans Amazon Anda agar penyedia email menerima email Anda. Untuk informasi selengkapnya, lihat Alamat IP Amazon EC2 Elastic di Panduan EC2 Pengguna Amazon.

  • Amazon Elastic Compute Cloud (AmazonEC2) membatasi lalu lintas email melalui port 25 secara default. Untuk menghindari batas waktu saat mengirim email melalui SMTP titik akhir dari AmazonEC2, Anda dapat meminta agar pembatasan ini dihapus. Untuk informasi selengkapnya, lihat Bagaimana cara menghapus pembatasan pada port 25 dari EC2 instans atau AWS Lambda fungsi Amazon saya? di pusat AWS pengetahuan.

    Atau, Anda dapat mengubah prosedur di bagian ini untuk menggunakan port 587 bukan port 25.

Mengonfigurasi Sendmail

Selesaikan langkah-langkah di bagian ini untuk mengonfigurasi Sendmail untuk mengirim email dengan menggunakan Amazon. SES

penting

Prosedur di bagian ini mengasumsikan bahwa Anda ingin menggunakan Amazon SES di AS Barat (Oregon). Wilayah AWS Jika Anda ingin menggunakan Wilayah yang berbeda, ganti semua contoh email-smtp.us-west-2.amazonaws.com dalam prosedur ini dengan SMTP titik akhir Wilayah yang diinginkan. Untuk daftar SMTP titik akhir URLs Wilayah AWS tempat Amazon SES tersedia, lihat Amazon Simple Email Service (AmazonSES) di Referensi Umum AWS.

Untuk mengonfigurasi Sendmail
  1. Di editor file, buka file /etc/mail/authinfo. Jika file tidak ditemukan, buatlah.

    Tambahkan baris berikut ke/etc/mail/authinfo:

    AuthInfo:email-smtp.us-west-2.amazonaws.com "U:root" "I:smtpUsername" "P:smtpPassword" "M:PLAIN"

    Pada contoh sebelumnya, lakukan perubahan berikut:

    • Ganti email-smtp.us-west-2.amazonaws.com dengan SES SMTP titik akhir Amazon yang ingin Anda gunakan.

    • Ganti smtpUsername dengan nama SES SMTP pengguna Amazon Anda.

    • Ganti smtpPassword dengan SES SMTP kata sandi Amazon Anda.

    catatan

    Kredensi SMTP masuk Anda berbeda dari ID Kunci AWS Akses dan Kunci Akses Rahasia Anda. Untuk informasi selengkapnya tentang mendapatkan kredensi SMTP masuk Anda, lihat. Memperoleh SES SMTP kredensi Amazon

    Setelah selesai, simpan authinfo.

  2. Di baris perintah, masukkan perintah berikut untuk menghasilkan file /etc/mail/authinfo.db:

    sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
  3. Pada baris perintah, ketik perintah berikut untuk menambahkan dukungan untuk menyampaikan ke titik SES SMTP akhir Amazon.

    sudo sh -c 'echo "Connect:email-smtp.us-west-2.amazonaws.com RELAY" >> /etc/mail/access'

    Pada perintah sebelumnya, ganti email-smtp.us-west-2.amazonaws.com dengan alamat SES SMTP titik akhir Amazon yang ingin Anda gunakan.

  4. Pada baris perintah, ketik perintah berikut untuk meregenerasi/etc/mail/access.db:

    sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
  5. Di baris perintah, ketik perintah berikut untuk membuat backup file sendmail.cf dan sendmail.mc:

    sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
  6. Tambahkan baris berikut ke file/etc/mail/sendmail.mc sebelum definisi apa punMAILER().

    define(`SMART_HOST', `email-smtp.us-west-2.amazonaws.com')dnl define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl MASQUERADE_AS(`example.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl

    Di teks sebelumnya, lakukan hal berikut:

    • Ganti email-smtp.us-west-2.amazonaws.com dengan SES SMTP titik akhir Amazon yang ingin Anda gunakan.

    • Ganti example.com dengan domain yang ingin Anda gunakan untuk mengirim email.

    Setelah selesai, simpan file.

    catatan

    Amazon EC2 membatasi komunikasi melalui port 25 secara default. Jika Anda menggunakan Sendmail dalam EC2 instans Amazon, Anda harus menyelesaikan Permintaan untuk Menghapus Batasan Pengiriman Email.

  7. Di baris perintah, ketik perintah berikut untuk membuat sendmail.cf yang dapat ditulis:

    sudo chmod 666 /etc/mail/sendmail.cf
  8. Di baris perintah, ketik perintah berikut untuk menghasilkan kembali sendmail.cf:

    sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
    catatan

    Jika Anda mengalami kesalahan seperti "Perintah tidak ditemukan" dan "Tidak ada file atau direktori tersebut," pastikan bahwa paket m4 dan sendmail-cf terinstal di sistem Anda.

  9. Di baris perintah, ketik perintah berikut untuk mengatur ulang izin sendmail.cf menjadi hanya baca:

    sudo chmod 644 /etc/mail/sendmail.cf
  10. Di baris perintah, ketik perintah berikut untuk memulai kembali Sendmail:

    sudo /etc/init.d/sendmail restart

    Bergantung pada versi Linux atau Sendmail, jika hal di atas tidak berfungsi, coba yang berikut ini:

    sudo su service sendmail restart
  11. Selesaikan langkah-langkah berikut untuk mengirim email percobaan:

    1. Di baris perintah, masukkan perintah berikut.

      /usr/sbin/sendmail -vf sender@example.com recipient@example.com

      Ganti sender@example.com dengan alamat email Dari Anda. Ganti recipient@example.com dengan alamat To. Setelah selesai, tekan Enter.

    2. Masukkan konten pesan berikut. Tekan Enter di akhir setiap baris.

      From: sender@example.com To: recipient@example.com Subject: Amazon SES test email This is a test message sent from Amazon SES using Sendmail.

      Setelah selesai memasukkan konten email, tekan Ctrl+D untuk mengirimkannya.

  12. Periksa email di klien email penerima. Jika Anda tidak dapat menemukan email, periksa folder surat sampah. Jika Anda masih tidak dapat menemukan email tersebut, periksa log Sendmail di server surat Anda. Log sering terletak di/var/log/mail.log atau/var/log/maillog.