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
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
, dancyrus-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
-
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
. -
-
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'
-
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. -
Pada baris perintah, ketik perintah berikut untuk meregenerasi/etc/mail/access.db:
sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
-
Di baris perintah, ketik perintah berikut untuk membuat backup file
sendmail.cf
dansendmail.mc
:sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
-
Tambahkan baris berikut ke file/etc/mail/sendmail.mc sebelum definisi apa pun
MAILER()
.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)dnlDi 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
. -
-
Di baris perintah, ketik perintah berikut untuk membuat sendmail.cf yang dapat ditulis:
sudo chmod 666 /etc/mail/sendmail.cf
-
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
dansendmail-cf
terinstal di sistem Anda. -
Di baris perintah, ketik perintah berikut untuk mengatur ulang izin sendmail.cf menjadi hanya baca:
sudo chmod 644 /etc/mail/sendmail.cf
-
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
-
Selesaikan langkah-langkah berikut untuk mengirim email percobaan:
-
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. Gantirecipient@example.com
dengan alamat To. Setelah selesai, tekan Enter. -
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.
-
-
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.