Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menguji koneksi Anda ke SES SMTP antarmuka Amazon menggunakan baris perintah
Anda dapat menggunakan metode yang dijelaskan di bagian ini dari baris perintah untuk menguji koneksi Anda ke SES SMTP titik akhir Amazon, memvalidasi SMTP kredensi Anda, dan memecahkan masalah koneksi. Prosedur ini menggunakan alat dan pustaka yang termasuk dengan sistem operasi yang paling umum.
Untuk informasi tambahan tentang pemecahan masalah SMTP koneksi, lihat. Masalah SMTP Amazon SES
Prasyarat
Saat Anda terhubung ke SES SMTP antarmuka Amazon, Anda harus memberikan satu set SMTP kredensil. SMTPKredensi ini berbeda dari kredensi standar AWS Anda. Dua tipe kredensial tidak dapat dipertukarkan. Untuk informasi selengkapnya tentang mendapatkan SMTP kredensi Anda, lihat. Memperoleh SES SMTP kredensi Amazon
Menguji koneksi Anda ke SES SMTP antarmuka Amazon
Anda dapat menggunakan baris perintah untuk menguji koneksi Anda ke SES SMTP antarmuka Amazon tanpa mengautentikasi atau mengirim pesan apa pun. Prosedur ini berguna untuk memecahkan masalah konektivitas dasar. Jika koneksi pengujian Anda gagal, lihatMasalah SMTP.
Bagian ini mencakup prosedur untuk menguji koneksi Anda menggunakan Open SSL (yang disertakan dengan sebagian besar distribusi Linux, macOS, dan Unix, dan juga tersedia untuk Windows) dan Test-NetConnection
cmdlet di PowerShell (yang disertakan dengan versi Windows terbaru).
- Linux, macOS, or Unix
-
Ada dua cara untuk terhubung ke SES SMTP antarmuka Amazon dengan OpenSSL: menggunakan eksplisit SSL melalui port 587, atau menggunakan implisit SSL melalui port 465.
Untuk terhubung ke SMTP antarmuka menggunakan eksplisit SSL
-
Pada baris perintah, masukkan perintah berikut untuk terhubung ke SES SMTP server Amazon:
openssl s_client -crlf -quiet -starttls smtp -connect
email-smtp.us-west-2.amazonaws.com
:587Pada perintah sebelumnya, ganti
email-smtp.us-west-2.amazonaws.com
dengan SES SMTP titik URL akhir Amazon untuk AWS Wilayah Anda. Untuk informasi selengkapnya, lihat Wilayah dan Amazon SES.Jika koneksi berhasil, Anda akan menemukan output yang serupa dengan berikut ini:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = email-smtp.us-west-2.amazonaws.com verify return:1 250 Ok
Koneksi secara otomatis ditutup setelah tidak aktif selama sekitar 10 detik.
Atau, Anda dapat menggunakan implisit SSL untuk terhubung ke SMTP antarmuka melalui port 465.
Untuk terhubung ke SMTP antarmuka menggunakan implisit SSL
-
Pada baris perintah, masukkan perintah berikut untuk terhubung ke SES SMTP server Amazon:
openssl s_client -crlf -quiet -connect
email-smtp.us-west-2.amazonaws.com
:465Pada perintah sebelumnya, ganti
email-smtp.us-west-2.amazonaws.com
dengan SES SMTP titik URL akhir Amazon untuk AWS Wilayah Anda. Untuk informasi selengkapnya, lihat Wilayah dan Amazon SES.Jika koneksi berhasil, Anda akan menemukan output yang serupa dengan berikut ini:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = email-smtp.us-west-2.amazonaws.com verify return:1 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-VCSHDP1YZ A1b2C3d4E5f6G7h8I9j0
Koneksi secara otomatis ditutup setelah tidak aktif selama sekitar 10 detik.
-
- PowerShell
-
Anda dapat menggunakan Test- NetConnection
cmdlet in PowerShell untuk terhubung ke server Amazon SESSMTP. catatan
Test-NetConnection
Cmdlet dapat menentukan apakah komputer Anda dapat terhubung ke titik akhir Amazon SESSMTP. Namun, itu tidak menguji apakah komputer Anda dapat membuat SSL koneksi implisit atau eksplisit ke titik akhirSMTP. Untuk menguji SSL koneksi, Anda dapat menginstal Open SSL for Windows untuk mengirim email pengujian.Untuk terhubung ke SMTP antarmuka menggunakan
Test-NetConnection
cmdlet-
Masuk PowerShell, masukkan perintah berikut untuk terhubung ke SES SMTP server Amazon:
Test-NetConnection -Port
587
-ComputerNameemail-smtp.us-west-2.amazonaws.com
Pada perintah sebelumnya, ganti
email-smtp.us-west-2.amazonaws.com
dengan SES SMTP titik URL akhir Amazon untuk AWS Wilayah Anda, dan ganti587
dengan nomor port. Untuk informasi selengkapnya tentang titik akhir regional di AmazonSES, lihatWilayah dan Amazon SES.Jika koneksi berhasil, Anda akan menemukan output yang serupa dengan contoh berikut:
ComputerName : email-smtp.us-west-2.amazonaws.com RemoteAddress : 198.51.100.126 RemotePort : 587 InterfaceAlias : Ethernet SourceAddress : 203.0.113.46 TcpTestSucceeded : True
-
Menggunakan baris perintah untuk mengirim email menggunakan SES SMTP antarmuka Amazon
Anda juga dapat menggunakan baris perintah untuk mengirim pesan menggunakan SES SMTP antarmuka Amazon. Prosedur ini berguna untuk menguji SMTP kredensil dan untuk menguji kemampuan penerima tertentu untuk menerima pesan yang Anda kirim dengan menggunakan Amazon. SES
- Linux, macOS, or Unix
-
Ketika pengirim email terhubung ke SMTP server, klien mengeluarkan serangkaian permintaan standar, dan server membalas setiap permintaan dengan respons standar. Serangkaian permintaan dan tanggapan ini disebut SMTPpercakapan. Saat Anda terhubung ke SES SMTP server Amazon menggunakan OpenSSL, server mengharapkan SMTP percakapan terjadi.
Saat Anda menggunakan Open SSL untuk terhubung ke SMTP antarmuka, Anda harus menyandikan SMTP kredensi Anda menggunakan pengkodean base64. Bagian ini mencakup prosedur untuk pengodean kredensial Anda menggunakan base64.
Untuk mengirim email dari baris perintah menggunakan SMTP antarmuka
-
Masukkan yang berikut ini di baris perintah dan ganti
email-smtp.us-west-2.amazonaws.com
dengan SES SMTP titik URL akhir Amazon untuk Anda Wilayah AWS. Untuk informasi lebih lanjut, lihatWilayah dan Amazon SES. :#!/bin/bash # Prompt user to provide following information read -p "Configuration set: " CONFIGSET read -p "Enter SMTP username: " SMTPUsername read -p "Enter SMTP password: " SMTPPassword read -p "Sender email address: " MAILFROM read -p "Receiver email address: " RCPT read -p "Email subject: " SUBJECT read -p "Message to send: " DATA echo # Encode SMTP username and password using base64 EncodedSMTPUsername=$(echo -n "$SMTPUsername" | openssl enc -base64) EncodedSMTPPassword=$(echo -n "$SMTPPassword" | openssl enc -base64) # Construct the email Email="EHLO example.com AUTH LOGIN $EncodedSMTPUsername $EncodedSMTPPassword MAIL FROM: $MAILFROM RCPT TO: $RCPT DATA X-SES-CONFIGURATION-SET: $CONFIGSET From: $MAILFROM To: $RCPT Subject: $SUBJECT $DATA . QUIT" echo "$Email" | openssl s_client -crlf -quiet -starttls smtp -connect
email-smtp.us-west-2.amazonaws.com
:587 -
Pada prompt untuk setiap variabel, masukkan nilai Anda.
-
-
Untuk mengirim menggunakan implisit SSL melalui port 465, gunakan:
openssl s_client -crlf -quiet -connect
email-smtp.us-west-2.amazonaws.com
:465
Jika pesan diterima oleh AmazonSES, Anda melihat output yang menyerupai contoh berikut:
250 Ok 01010160d7de98d8-21e57d9a-JZho-416c-bbe1-8ebaAexample-000000
String angka dan teks yang mengikuti
250 Ok
adalah ID pesan email.catatan
Koneksi ditutup secara otomatis setelah tidak aktif selama sekitar 10 detik.
-
-
- PowerShell
-
Anda dapat menggunakan Net.Mail. SmtpClient
kelas untuk mengirim email menggunakan eksplisit SSL melalui port 587. catatan
Kelas
Net.Mail.SmtpClient
telah secara resmi usang, dan Microsoft merekomendasikan Anda menggunakan pustaka pihak ke tiga. Kode ini hanya ditujukan untuk tujuan pengujian saja, dan tidak boleh digunakan untuk beban kerja produksi.Untuk mengirim email melalui PowerShell penggunaan eksplisit SSL
-
Di editor teks, buat file baru. Tempel kode berikut ke file:
function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential) $SMTPClient = New-Object Net.Mail.SmtpClient($Server, $Port) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Credentials.Username, $Credentials.Password); try { Write-Output "Sending message..." $SMTPClient.Send($Sender, $Recipient, $Subject, $Body) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ } } function SendTestEmail(){ $Server = "
email-smtp.us-west-2.amazonaws.com
" $Port = 587 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (explicit SSL, port 587)." $Sender = "sender@example.com
" $Recipient = "recipient@example.com
" SendEmail $Server $Port $Sender $Recipient $Subject $Body } SendTestEmailSetelah selesai, simpan file sebagai
SendEmail.ps1
. -
Buat perubahan berikut ke file yang Anda buat di langkah sebelumnya:
-
Ganti
sender@example.com
dengan alamat email tempat Anda ingin mengirim pesan dari. -
Ganti
recipient@example.com
dengan alamat email yang ingin Anda kirimi pesan. -
Ganti
email-smtp.us-west-2.amazonaws.com
dengan SES SMTP titik URL akhir Amazon untuk AWS Wilayah Anda. Untuk informasi selengkapnya, lihat Wilayah dan Amazon SES.
-
-
Di PowerShell, masukkan perintah berikut:
.\
path\to\SendEmail.ps1
Pada perintah sebelumnya, ganti
path\to\SendEmail.ps1
dengan jalur ke file yang Anda buat di langkah 1. -
Saat diminta, masukkan nama SMTP pengguna dan kata sandi Anda.
Atau, Anda dapat menggunakan System.Web.Mail. SmtpMail
kelas untuk mengirim email menggunakan implisit SSL melalui port 465. catatan
Kelas
System.Web.Mail.SmtpMail
telah secara resmi usang, dan Microsoft merekomendasikan Anda menggunakan pustaka pihak ke tiga. Kode ini hanya ditujukan untuk tujuan pengujian saja, dan tidak boleh digunakan untuk beban kerja produksi.Untuk mengirim email melalui PowerShell penggunaan implisit SSL
-
Di editor teks, buat file baru. Tempel kode berikut ke file:
[System.Reflection.Assembly]::LoadWithPartialName("System.Web") > $null function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential) $mail = New-Object System.Web.Mail.MailMessage $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", $Server) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", $Port) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", $true) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", $Credentials.UserName) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", $Credentials.Password) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", $timeout / 1000) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 2) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1) $mail.From = $Sender $mail.To = $Recipient $mail.Subject = $Subject $mail.Body = $Body try { Write-Output "Sending message..." [System.Web.Mail.SmtpMail]::Send($mail) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ } } function SendTestEmail(){ $Server = "
email-smtp.us-west-2.amazonaws.com
" $Port = 465 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (implicit SSL, port 465)." $Sender = "sender@example.com
" $Recipient = "recipient@example.com
" SendEmail $Server $Port $Sender $Recipient $Subject $Body } SendTestEmailSetelah selesai, simpan file sebagai
SendEmail.ps1
. -
Buat perubahan berikut ke file yang Anda buat di langkah sebelumnya:
-
Ganti
sender@example.com
dengan alamat email tempat Anda ingin mengirim pesan dari. -
Ganti
recipient@example.com
dengan alamat email yang ingin Anda kirimi pesan. -
Ganti
email-smtp.us-west-2.amazonaws.com
dengan SES SMTP titik URL akhir Amazon untuk AWS Wilayah Anda. Untuk informasi selengkapnya, lihat Wilayah dan Amazon SES.
-
-
Di PowerShell, masukkan perintah berikut:
.\
path\to\SendEmail.ps1
Pada perintah sebelumnya, ganti
path\to\SendEmail.ps1
dengan jalur ke file yang Anda buat di langkah 1. -
Saat diminta, masukkan nama SMTP pengguna dan kata sandi Anda.
-