Menguji koneksi Anda ke SES SMTP antarmuka Amazon menggunakan baris perintah - Layanan Email Sederhana Amazon

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:587

    Pada 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:465

    Pada 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-NetConnectionCmdlet 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 -ComputerName email-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 ganti 587 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
  1. 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
  2. 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. SmtpClientkelas 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
  1. 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 } SendTestEmail

    Setelah selesai, simpan file sebagai SendEmail.ps1.

  2. 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.

  3. 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.

  4. Saat diminta, masukkan nama SMTP pengguna dan kata sandi Anda.

Atau, Anda dapat menggunakan System.Web.Mail. SmtpMailkelas 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
  1. 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 } SendTestEmail

    Setelah selesai, simpan file sebagai SendEmail.ps1.

  2. 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.

  3. 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.

  4. Saat diminta, masukkan nama SMTP pengguna dan kata sandi Anda.