

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

# Menggunakan antarmuka SMTP Amazon SES untuk mengirim email
<a name="send-email-smtp"></a>

Untuk mengirim email produksi melalui Amazon SES, Anda dapat menggunakan antarmuka Protokol Transfer Surat Sederhana (SMTP) atau API Amazon SES. Untuk informasi selengkapnya tentang API Amazon SES, lihat [Menggunakan API Amazon SES untuk mengirim email](send-email-api.md).. Bagian ini menjelaskan antarmuka SMTP.

Amazon SES mengirimkan email menggunakan SMTP, merupakan protokol email yang paling umum di internet. Anda dapat mengirim email melalui Amazon SES menggunakan berbagai bahasa pemrograman yang diaktifkan SMTP dan perangkat lunak untuk terhubung ke antarmuka SMTP Amazon SES. Bagian ini menjelaskan cara untuk mendapatkan kredensial SMTP Amazon SES Anda, cara mengirim email menggunakan antarmuka SMTP, dan cara mengonfigurasi beberapa perangkat lunak dan server mail untuk menggunakan Amazon SES untuk mengirim email.

Untuk solusi masalah umum yang mungkin Anda alami ketika menggunakan Amazon SES melalui antarmuka SMTP, lihat [Masalah SMTP Amazon SES](troubleshoot-smtp.md). 

## Persyaratan untuk mengirim email melalui SMTP
<a name="send-email-smtp-requirements"></a>

Untuk mengirim email menggunakan antarmuka SMTP Amazon SES, Anda memerlukan hal berikut:
+ Alamat titik akhir SMTP. Untuk daftar titik akhir SMTP Amazon SES, lihat [Menghubungkan ke titik akhir SMTP Amazon SES](smtp-connect.md).
+ Nomor port antarmuka SMTP. Nomor port berbeda-beda menurut metode koneksinya. Untuk informasi lebih lanjut, lihat [Menghubungkan ke titik akhir SMTP Amazon SES](smtp-connect.md).
+ Nama pengguna dan kata sandi SMTP. Kredensial SMTP unik di setiap Wilayah AWS . Jika Anda berencana untuk menggunakan antarmuka SMTP untuk mengirim email di beberapa AWS Wilayah, Anda memerlukan kredensi SMTP untuk setiap Wilayah.
**penting**  
Kredensi SMTP Anda tidak identik dengan kunci AWS akses Anda atau kredenal yang Anda gunakan untuk masuk ke konsol Amazon SES. Untuk informasi tentang cara membuat kredensyal SMTP Anda, lihat. [Mendapatkan kredensial SMTP Amazon SES](smtp-credentials.md)
+ Perangkat lunak klien yang dapat berkomunikasi menggunakan Keamanan Lapisan Pengangkutan (TLS). Untuk informasi lebih lanjut, lihat [Menghubungkan ke titik akhir SMTP Amazon SES](smtp-connect.md).
+ Alamat email yang telah Anda verifikasi dengan Amazon SES. Untuk informasi lebih lanjut, lihat [Identitas terverifikasi di Amazon SES](verify-addresses-and-domains.md).
+ Peningkatan kuota pengiriman, jika Anda ingin mengirim kuantitas email yang besar. Untuk informasi lebih lanjut, lihat [Mengelola batas pengiriman Amazon SES Anda](manage-sending-quotas.md).

## Metode untuk mengirim email melalui SMTP
<a name="send-email-methods"></a>

Anda dapat mengirim email melalui SMTP melalui salah satu metode berikut:
+ Untuk mengonfigurasi perangkat lunak yang diaktifkan SMTP untuk mengirim email melalui antarmuka SMTP Amazon SES, lihat [Mengirim email melalui Amazon SES menggunakan paket perangkat lunak](send-email-smtp-software-package.md).
+ Untuk memprogram aplikasi untuk mengirim email melalui Amazon SES, lihat [Mengirim email melalui antarmuka Amazon SES SMTP secara terprogram](send-using-smtp-programmatically.md).
+ Untuk mengonfigurasi server email yang ada agar dapat mengirim semua surat keluar Anda melalui Amazon SES, lihat [Mengintegrasikan Amazon SES dengan server email yang ada](send-email-smtp-existing-server.md).
+ Untuk berinteraksi dengan antarmuka SMTP Amazon SES menggunakan baris perintah, yang bisa berguna untuk pengujian, lihat [Menguji koneksi Anda ke antarmuka SMTP Amazon SES menggunakan baris perintah](send-email-smtp-client-command-line.md).

Untuk daftar kode respons SMTP, lihat [Kode respons SMTP dikembalikan oleh Amazon SES](troubleshoot-smtp.md#troubleshoot-smtp-response-codes).

## Informasi email yang akan disediakan
<a name="smtp-parameters"></a>

Ketika Anda mengakses Amazon SES melalui antarmuka SMTP, aplikasi klien SMTP Anda merakit pesan, sehingga informasi yang harus disediakan tergantung pada aplikasi yang Anda gunakan. Minimal, pertukaran SMTP antara klien dengan server memerlukan berikut ini: 
+ alamat sumber
+ alamat tujuan
+ data pesan

Jika Anda menggunakan antarmuka SMTP dan mengaktifkan penerusan umpan balik, maka notifikasi pentalan, aduan, dan penyampaian akan dikirim ke alamat "MAIL FROM". Alamat "Balas Ke" yang Anda tentukan tidak digunakan.



# Mendapatkan kredensial SMTP Amazon SES
<a name="smtp-credentials"></a>

Anda memerlukan kredensyal SMTP Amazon SES untuk mengakses antarmuka SES SMTP.

Kredensi yang Anda gunakan untuk mengirim email melalui antarmuka SES SMTP unik untuk setiap Wilayah. AWS Jika Anda menggunakan antarmuka SES SMTP untuk mengirim email di lebih dari satu Wilayah, Anda harus membuat satu set kredensi SMTP untuk setiap Wilayah yang Anda rencanakan untuk digunakan.

Kata sandi SMTP Anda berbeda dari kunci akses AWS rahasia Anda. Untuk informasi selengkapnya tentang jenis kredensial, lihat [Tipe kredensial Amazon SES](send-email-concepts-credentials.md).

**catatan**  
Untuk daftar titik akhir SMTP yang tersedia saat ini, lihat titik akhir [SMTP](https://docs.aws.amazon.com/general/latest/gr/ses.html#ses_smtp_endpoints) di. *Referensi Umum AWS* 

## Memperoleh kredensi SES SMTP menggunakan konsol SES
<a name="smtp-credentials-console"></a>

**Persyaratan**  
Pengguna IAM dapat membuat kredensyal SES SMTP, tetapi kebijakan pengguna harus memberi mereka izin untuk menggunakan IAM itu sendiri, karena kredensyal SES SMTP dibuat dengan menggunakan IAM. Kebijakan IAM Anda harus mengizinkan Anda untuk melakukan tindakan IAM berikut: `iam:ListUsers`, `iam:CreateUser`, `iam:CreateAccessKey`, dan `iam:PutUserPolicy`. Jika Anda mencoba membuat kredensyal SES SMTP menggunakan konsol dan pengguna IAM Anda tidak memiliki izin ini, Anda akan melihat kesalahan yang menyatakan bahwa akun Anda *“tidak diizinkan* untuk melakukan iam:.” ListUsers

**penting**  
Tindakan IAM yang direferensikan di atas memiliki tingkat akses [manajemen Izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_understand-policy-summary-access-level-summaries.html#access_policies_access-level) yang merupakan tingkat IAM tertinggi karena memberikan izin untuk memberikan atau memodifikasi izin sumber daya dalam layanan. Oleh karena itu, untuk meningkatkan keamanan AWS akun Anda, sangat disarankan agar Anda membatasi atau secara teratur memantau kebijakan ini yang mencakup klasifikasi tingkat akses manajemen Izin.

**Untuk membuat kredensial SMTP Anda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon SES di [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/).

1. Pilih **pengaturan SMTP** di panel navigasi kiri - ini akan membuka halaman pengaturan **Simple Mail Transfer Protocol (SMTP**).

1. Pilih **Create SMTP Credentials** di sudut kanan atas - konsol IAM akan terbuka.

1. (Opsional) Jika Anda perlu melihat, mengedit, atau menghapus pengguna SMTP yang telah Anda buat, pilih **Kelola kredensyal SMTP saya yang ada** di sudut kanan bawah - konsol IAM akan terbuka. Rincian untuk mengelola kredensyal SMTP diberikan mengikuti prosedur ini.

1. **Untuk **Buat Pengguna untuk SMTP**, ketikkan nama untuk pengguna SMTP Anda di bidang Nama Pengguna.** Atau, Anda dapat menggunakan nilai default yang disediakan di bidang ini. Setelah selesai, pilih **Buat pengguna** di sudut kanan bawah.

1. Pilih **Tampilkan** di bawah *kata sandi SMTP* - kredensi SMTP Anda ditampilkan di layar.

1. Unduh kredensyal ini dengan memilih **Unduh file.csv** atau salin dan simpan di tempat yang aman, karena Anda tidak dapat melihat atau menyimpan kredensialnya setelah menutup kotak dialog ini.

1. Pilih **Kembali ke konsol SES**.

Anda dapat melihat daftar kredensyal SMTP yang Anda buat menggunakan prosedur ini di konsol IAM di bawah **Manajemen akses** dan memilih **Pengguna diikuti dengan menggunakan bilah pencarian untuk menemukan semua pengguna** yang telah Anda tetapkan kredensyal SMTP.

Anda juga dapat menggunakan konsol IAM untuk menghapus pengguna SMTP yang sudah ada. Untuk mempelajari lebih lanjut tentang menghapus pengguna, lihat [Mengelola Pengguna IAM di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html) *Memulai IAM*.

Jika Anda ingin mengubah kata sandi SMTP, Hapus pengguna SMTP yang ada di konsol IAM. Kemudian, untuk menghasilkan satu set kredensial SMTP yang baru, selesaikan prosedur sebelumnya .

## Memperoleh kredensyal SES SMTP dengan mengonversi kredensyal yang ada AWS
<a name="smtp-credentials-convert"></a>

Jika Anda memiliki pengguna yang Anda atur menggunakan antarmuka IAM, Anda dapat memperoleh kredenal SES SMTP pengguna dari kredensialnya. AWS 

**penting**  
Jangan gunakan kredensyal sementara untuk mendapatkan AWS kredensyal SMTP. Antarmuka SES SMTP tidak mendukung kredensyal SMTP yang telah dihasilkan dari kredensyal keamanan sementara. 

**Untuk mengaktifkan pengguna IAM mengirim email menggunakan antarmuka SES SMTP**

1. Dapatkan kredensi SMTP pengguna dari AWS kredensialnya dengan menggunakan algoritme yang disediakan di bagian ini mengikuti prosedur ini.

   Karena Anda memulai dari AWS kredensyal, nama pengguna SMTP sama dengan ID kunci AWS akses, jadi Anda hanya perlu membuat kata sandi SMTP.

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di bawah **Manajemen akses**, pilih **Kebijakan** diikuti dengan **Buat kebijakan**.

1. Di **editor Kebijakan**, pilih **JSON** dan hapus kode contoh apa pun di editor.

1. Tempelkan ke kebijakan izin berikut ke editor:

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
   "Effect": "Allow",
               "Action": "ses:SendRawEmail",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya** dan masukkan `AmazonSesSendingAccess` di bidang **Nama kebijakan** diikuti oleh **Buat kebijakan**.

1. Di bawah **Manajemen akses**, pilih **Grup pengguna** diikuti oleh **Buat grup**.

1. Masukkan `AWSSESSendingGroupDoNotRename` di bidang **Nama grup pengguna**.

1. Tambahkan pengguna SMTP ke grup dengan memilihnya dari **Tambahkan pengguna ke tabel grup**.

1. Lampirkan `AmazonSesSendingAccess` kebijakan yang dibuat sebelumnya dengan memilihnya dari tabel **Lampirkan kebijakan izin** diikuti oleh **Buat grup pengguna**.

Untuk informasi selengkapnya tentang penggunaan SES dengan IAM, lihat[Identity and access management di Amazon SES](control-user-access.md).

**catatan**  
Meskipun Anda dapat menghasilkan kredensi SES SMTP untuk setiap pengguna IAM, kami menyarankan Anda membuat pengguna IAM terpisah ketika Anda membuat kredenal SMTP Anda. Untuk informasi tentang mengapa ini praktik yang baik untuk membuat pengguna dengan tujuan tertentu, buka [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html).

Pseudocode berikut menunjukkan algoritma yang mengubah kunci akses AWS rahasia ke kata sandi SES SMTP.

```
 1. // Modify this variable to include your AWS secret access key
 2. key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
 3.             
 4. // Modify this variable to refer to the AWS Region that you want to use to send email.
 5. region = "us-west-2";
 6.             
 7. // The values of the following variables should always stay the same.
 8. date = "11111111";
 9. service = "ses";
10. terminal = "aws4_request";
11. message = "SendRawEmail";
12. version = 0x04;
13. 
14. kDate = HmacSha256(date, "AWS4" + key);
15. kRegion = HmacSha256(region, kDate);
16. kService = HmacSha256(service, kRegion);
17. kTerminal = HmacSha256(terminal, kService);
18. kMessage = HmacSha256(message, kTerminal);
19. signatureAndVersion = Concatenate(version, kMessage);
20. smtpPassword = Base64(signatureAndVersion);
```

Beberapa bahasa pemrograman termasuk pustaka yang dapat Anda gunakan untuk mengubah secret access key IAM menjadi kata sandi SMTP. Bagian ini mencakup contoh kode yang dapat Anda gunakan untuk mengonversi kunci akses AWS rahasia ke kata sandi SES SMTP menggunakan Python.

**catatan**  
Contoh berikut menggunakan **f-string** yang diperkenalkan di Python 3.6; jika menggunakan versi lama, maka tidak akan berfungsi.
Dalam contoh berikut, daftar SMTP\$1REGIONS hanyalah sebuah contoh—daftar wilayah Anda yang sebenarnya bisa lebih pendek atau lebih lama tergantung pada wilayah mana Anda berencana untuk mengirim email karena Anda memerlukan kredensyal SMTP untuk masing-masing wilayah. Wilayah AWS

------
#### [ Python ]

```
#!/usr/bin/env python3

import hmac
import hashlib
import base64
import argparse

SMTP_REGIONS = [
    "us-east-2",  # US East (Ohio)
    "us-east-1",  # US East (N. Virginia)
    "us-west-2",  # US West (Oregon)
    "ap-south-1",  # Asia Pacific (Mumbai)
    "ap-northeast-2",  # Asia Pacific (Seoul)
    "ap-southeast-1",  # Asia Pacific (Singapore)
    "ap-southeast-2",  # Asia Pacific (Sydney)
    "ap-northeast-1",  # Asia Pacific (Tokyo)
    "ca-central-1",  # Canada (Central)
    "eu-central-1",  # Europe (Frankfurt)
    "eu-west-1",  # Europe (Ireland)
    "eu-west-2",  # Europe (London)
    "eu-south-1",  # Europe (Milan)
    "eu-north-1",  # Europe (Stockholm)
    "sa-east-1",  # South America (Sao Paulo)
    "us-gov-west-1",  # AWS GovCloud (US)
    "us-gov-east-1",  # AWS GovCloud (US)
]

# These values are required to calculate the signature. Do not change them.
DATE = "11111111"
SERVICE = "ses"
MESSAGE = "SendRawEmail"
TERMINAL = "aws4_request"
VERSION = 0x04


def sign(key, msg):
    return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()


def calculate_key(secret_access_key, region):
    if region not in SMTP_REGIONS:
        raise ValueError(f"The {region} Region doesn't have an SMTP endpoint.")

    signature = sign(("AWS4" + secret_access_key).encode("utf-8"), DATE)
    signature = sign(signature, region)
    signature = sign(signature, SERVICE)
    signature = sign(signature, TERMINAL)
    signature = sign(signature, MESSAGE)
    signature_and_version = bytes([VERSION]) + signature
    smtp_password = base64.b64encode(signature_and_version)
    return smtp_password.decode("utf-8")


def main():
    parser = argparse.ArgumentParser(
        description="Convert a Secret Access Key to an SMTP password."
    )
    parser.add_argument("secret", help="The Secret Access Key to convert.")
    parser.add_argument(
        "region",
        help="The AWS Region where the SMTP password will be used.",
        choices=SMTP_REGIONS,
    )
    args = parser.parse_args()
    print(calculate_key(args.secret, args.region))


if __name__ == "__main__":
    main()
```

Untuk mendapatkan kata sandi SMTP Anda menggunakan skrip ini, simpan kode sebelumnya sebagai `smtp_credentials_generate.py`. Kemudian, di baris perintah, jalankan perintah berikut:

```
python path/to/smtp_credentials_generate.py wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY us-east-1
```

Di perintah sebelumnya, lakukan hal berikut:
+ Ganti *path/to/* dengan jalur ke lokasi tempat Anda menyimpan`smtp_credentials_generate.py`.
+ Ganti *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY* dengan kunci akses rahasia yang ingin Anda ubah menjadi kata sandi SMTP.
+ Ganti *us-east-1* dengan AWS Wilayah di mana Anda ingin menggunakan kredenal SMTP.

Ketika skrip ini berhasil berjalan, satu-satunya output adalah kata sandi SMTP Anda.

------

## Memigrasi pengguna SMTP dari kebijakan inline yang ada ke kebijakan grup (rekomendasi keamanan)
<a name="migrate-inline-policy-to-group"></a>

**penting**  
Jika Anda membuat kredensi SMTP SES sebelum 6 September 2024, kebijakan inline dan tag telah dilampirkan ke pengguna SMTP Anda. SES bergerak menjauh dari kebijakan inline dan mendorong Anda untuk melakukan hal yang sama sebagai rekomendasi keamanan.

Sebelum memigrasikan pengguna SMTP dari kebijakan sebaris yang ada ke kebijakan grup, Anda harus terlebih dahulu membuat grup pengguna IAM dengan kebijakan izin SES untuk menggantikan kebijakan sebaris. *Jika Anda telah membuat grup pengguna IAM ini, atau secara otomatis dibuat untuk kredensyal SMTP yang Anda buat mulai 6 September 2024 dan seterusnya, Anda dapat langsung melewati langkah 10 dalam prosedur berikut.*

**Untuk bermigrasi dari kebijakan sebaris yang ada ke grup terkelola**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di bawah **Manajemen akses**, pilih **Kebijakan** diikuti dengan **Buat kebijakan**.

1. Di **editor Kebijakan**, pilih **JSON** dan hapus kode contoh apa pun di editor.

1. Tempelkan ke kebijakan izin berikut ke editor:

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
   "Effect": "Allow",
               "Action": "ses:SendRawEmail",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya** dan masukkan `AmazonSesSendingAccess` di bidang **Nama kebijakan** diikuti oleh **Buat kebijakan**.

1. Di bawah **Manajemen akses**, pilih **Grup pengguna** diikuti oleh **Buat grup**.

1. Masukkan `AWSSESSendingGroupDoNotRename` di bidang **Nama grup pengguna**.

1. Tambahkan pengguna SMTP ke grup dengan memilihnya dari **Tambahkan pengguna ke tabel grup**.

1. Lampirkan `AmazonSesSendingAccess` kebijakan yang dibuat sebelumnya dengan memilihnya dari tabel **Lampirkan kebijakan izin** diikuti oleh **Buat grup pengguna**.

   Setelah Anda membuat grup pengguna IAM dengan kebijakan izin SES, Anda dapat memigrasikan pengguna SMTP dari kebijakan inline mereka saat ini ke kebijakan grup ini seperti yang dijelaskan dalam langkah-langkah yang tersisa.

1. Di bawah **Manajemen akses**, pilih **Pengguna** diikuti dengan memilih pengguna SMTP yang ingin Anda migrasikan.

1. Pilih tab **Grup** dan pilih **Tambahkan pengguna ke grup**.

1. Pilih `AWSSESSendingGroupDoNotRename` grup yang diikuti oleh **Tambahkan pengguna ke grup**.

1. Pilih tab **Izin** dan konfirmasikan bahwa ada dua baris `AmazonSesSendingAccess` yang terdaftar dengan kolom **Nama kebijakan**, satu dengan *Inline* dan satu dengan *Grup `AWSSESSendingGroupDoNotRename`* terdaftar di kolom **Terlampir via**.

1. Pilih hanya baris yang terdapat `AmazonSesSendingAccess` di kolom **Nama kebijakan** dan *Sebaris* di kolom **Terlampir melalui** diikuti dengan **Hapus** dan konfirmasi dengan **kebijakan Hapus**.

   Verifikasi baris dengan *Grup `AWSSESSendingGroupDoNotRename`* di kolom **Terlampir via** tetap.

1. Pilih tab **Tag** diikuti oleh **Kelola tag**.

1. Pilih **Hapus** di sebelah baris yang berisi *InvokedBy*di kolom **Kunci** dan *SESConsole*di kolom **Nilai** diikuti oleh **Simpan perubahan**.

**penting**  
`AmazonSesSendingAccess`Kebijakan (baik sebagai kebijakan inline atau grup atau keduanya) harus tetap melekat pada pengguna SMTP untuk memastikan pengiriman mereka tidak terpengaruh. Hanya hapus kebijakan inline setelah kebijakan grup dilampirkan ke pengguna Anda. 

# Menghubungkan ke titik akhir SMTP Amazon SES
<a name="smtp-connect"></a>

Untuk mengirim email menggunakan antarmuka SMTP Amazon SES, hubungkan ke titik akhir SMTP. Untuk daftar lengkap titik akhir SMTP Amazon SES, lihat titik akhir [dan kuota Amazon Simple Email Service](https://docs.aws.amazon.com/general/latest/gr/ses.html) di. *Referensi Umum AWS*

Titik akhir Amazon SES SMTP memerlukan semua koneksi dienkripsi menggunakan Keamanan Lapisan Pengangkutan (TLS). (Perhatikan bahwa TLS sering disebut dengan nama protokol pendahulunya, SSL.) Amazon SES mendukung dua mekanisme untuk membangun koneksi yang terenkripsi TLS: STARTTLS dan TLS Wrapper. Periksa dokumentasi perangkat lunak Anda untuk menentukan apakah STARTTLS, TLS Wrapper, atau keduanya didukung.

Amazon Elastic Compute Cloud (Amazon EC2) melakukan throttle lalu lintas email melalui port 25 secara default. Untuk menghindari batas waktu saat mengirim email melalui titik akhir SMTP dari EC2, kirimkan [Permintaan untuk Menghapus Batasan Pengiriman Email](https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request)untuk menghapus throttle. Atau, Anda dapat mengirimkan email menggunakan port yang berbeda atau [VPC endpoint Amazon](send-email-set-up-vpc-endpoints.md).

Untuk masalah koneksi SMTP, lihat. [Masalah SMTP](troubleshoot-smtp.md)

## STARTTLS
<a name="smtp-connect-starttls"></a>

STARTTLS adalah sarana untuk meningkatkan koneksi yang tidak terenkripsi ke koneksi terenkripsi. Ada beberapa Versi STARTTLS untuk berbagai protokol; versi SMTP ditentunkan di [RFC 3207](https://www.ietf.org/rfc/rfc3207.txt).

Untuk menyiapkan koneksi STARTTLS, klien SMTP menghubungkan ke titik akhir SMTP Amazon SES di port 25, 587, atau 2587, mengeluarkan perintah EHLO, dan menunggu server untuk mengumumkan bahwa ekstensi SMTP STARTTLS didukung. Klien kemudian mengeluarkan perintah STARTTLS, memulai negosiasi TLS. Ketika negosiasi selesai, klien mengeluarkan perintah EHLO melalui koneksi terenkripsi baru, dan sesi SMTP berjalan normal.

## TLS Wrapper
<a name="smtp-connect-tlswrapper"></a>

TLS Wrapper (juga dikenal sebagai SMTPS atau Protokol Handshake) adalah sarana untuk memulai koneksi terenkripsi tanpa terlebih dahulu membuat koneksi tidak terenkripsi. Dengan TLS Wrapper, titik akhir SMTP Amazon SES tidak melakukan negosiasi TLS: ini adalah tanggung jawab klien untuk terhubung ke titik akhir menggunakan TLS, dan terus menggunakan TLS untuk seluruh percakapan. Wrapper TLS adalah protokol yang lebih tua, namun masih didukung oleh banyak klien.

Untuk menyiapkan koneksi TLS Wrapper, klien SMTP terhubung ke titik akhir SMTP Amazon SES di port 465 atau 2465. Server menyajikan sertifikatnya, klien mengeluarkan perintah EHLO, dan sesi SMTP berjalan normal.

# Mengirim email melalui Amazon SES menggunakan paket perangkat lunak
<a name="send-email-smtp-software-package"></a>

Sejumlah paket perangkat lunak komersial dan sumber terbuka ditemukan yang mendukung pengiriman email melalui SMTP. Berikut ini adalah beberapa contohnya:
+ Platform blog
+ Agregator RSS
+ Daftar perangkat lunak manajemen
+ Sistem alur kerja

Anda dapat mengonfigurasi perangkat lunak yang diaktifkan SMTP untuk mengirim email melalui antarmuka SMTP Amazon SES. Untuk petunjuk tentang cara mengonfigurasi SMTP untuk paket perangkat lunak tertentu, lihat dokumentasi untuk perangkat lunak tersebut.

Prosedur berikut menunjukkan cara menyiapkan pengiriman Amazon SES di JIRA, sebuah solusi pelacakan masalah yang populer. Dengan konfigurasi ini, JIRA dapat memberi tahu pengguna melalui email setiap kali ada perubahan status dari masalah perangkat lunak.

**Untuk Mengonfigurasi JIRA untuk Mengirim email Menggunakan Amazon SES**

1. Menggunakan peramban web Anda, masuk ke JIRA dengan kredensial administrator.

1. Di jendela peramban, pilih **Administrasi**.

1. Di menu **Sistem**, pilih **Surat**.

1. Di halaman **Administrasi surat**, pilih **Server Surat**.

1. Pilih **Konfigurasikan server surat SMTP baru**.

1. Di bagian **Tambahkan Server Surat SMTP**, isi bidang berikut:

   1. **Nama**—Nama deskriptif untuk server ini.

   1. **Alamat Dari**—Alamat asal email akan dikirim. Anda harus memverifikasi alamat email ini dengan Amazon SES sebelum Anda dapat mengirim dari alamat tersebut. Untuk informasi selengkapnya tentang verifikasi, lihat [Identitas terverifikasi di Amazon SES](verify-addresses-and-domains.md).

   1. **Awalan email**—String yang ditambahkan JIRA untuk setiap baris subjek sebelum pengiriman.

   1. **Protokol**—Pilih **SMTP**.
**catatan**  
Jika Anda tidak dapat terhubung ke Amazon SES menggunakan pengaturan ini, coba **SECURE\$1SMTP**.

   1. **Nama Host**—Lihat [Menghubungkan ke titik akhir SMTP Amazon SES](smtp-connect.md) untuk daftar titik akhir SMTP Amazon SES. Misalnya, jika Anda ingin menggunakan titik akhir Amazon SES di wilayah US West (Oregon), nama host akan menjadi *email-smtp.us-west-2.amazonaws.com*.

   1. **Port SMTP**—25, 587, atau 2587 (untuk menghubungkan menggunakan STARTTLS), atau 465 atau 2465 (untuk menghubungkan menggunakan TLS Wrapper).

   1. **TLS**—Pilih kotak centang ini.

   1. **Nama pengguna**—Nama pengguna SMTP Anda.

   1. **Kata Sandi**—Kata sandi SMTP Anda.

   Anda dapat melihat pengaturan untuk TLS Wrapper pada citra berikut.  
![\[Konfigurasi email SMTP untuk JIRA\]](http://docs.aws.amazon.com/id_id/ses/latest/dg/images/SMTP_jira.png)

1. Pilih **Uji Koneksi** . Jika email percobaan yang JIRA kirim melalui Amazon SES berhasil diterima, maka konfigurasi Anda selesai.

# Mengirim email melalui antarmuka Amazon SES SMTP secara terprogram
<a name="send-using-smtp-programmatically"></a>

Untuk mengirim email menggunakan antarmuka Amazon SES SMTP, Anda dapat menggunakan bahasa pemrograman yang diaktifkan SMTP, server email, atau aplikasi. Sebelum memulai, selesaikan tugas-tugas di [Menyiapkan Amazon Simple Email Service](setting-up.md). Anda juga harus mendapatkan informasi berikut: 
+ Kredensi SMTP Amazon SES Anda, yang memungkinkan Anda terhubung ke titik akhir SMTP Amazon SES. Untuk mendapatkan kredensyal SMTP Amazon SES Anda, lihat. [Mendapatkan kredensial SMTP Amazon SES](smtp-credentials.md) 
**penting**  
Kredensyal SMTP Anda berbeda dari kredensyal Anda. AWS Untuk informasi selengkapnya tentang kredensial, lihat [Tipe kredensial Amazon SES](send-email-concepts-credentials.md).
+ Alamat titik akhir SMTP. Untuk daftar titik akhir SMTP Amazon SES, lihat [Menghubungkan ke titik akhir SMTP Amazon SES](smtp-connect.md).
+ Nomor port antarmuka SMTP Amazon SES, yang tergantung pada metode koneksi. Untuk informasi lebih lanjut, lihat [Menghubungkan ke titik akhir SMTP Amazon SES](smtp-connect.md).

## Contoh kode
<a name="send-email-smtp-code-examples"></a>

Anda dapat mengakses antarmuka SMTP Amazon SES dengan menggunakan bahasa pemrograman yang diaktifkan SMTP. Anda memberikan nama host dan nomor port bersama dengan kredensial SMTP Anda pada SMTP Amazon SES dan kemudian menggunakan fungsi SMTP generik bahasa pemrograman untuk mengirim email.

Amazon Elastic Compute Cloud (Amazon EC2) membatasi lalu lintas email melalui port 25 secara default. Untuk menghindari waktu habis saat mengirim email melalui titik akhir SMTP dari Amazon EC2, Anda dapat meminta pembatasan ini dihapus. Untuk informasi selengkapnya, lihat [Bagaimana cara menghapus pembatasan pada port 25 dari instans AWS Lambda atau fungsi Amazon EC2 saya](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)? di pusat AWS pengetahuan.

Contoh kode di bagian ini untuk Java dan PHP menggunakan port 587 untuk menghindari masalah ini. 

**catatan**  
Dalam tutorial ini, Anda mengirim email ke diri Anda sendiri sehingga Anda dapat memeriksa apakah Anda sudah menerimanya. Untuk eksperimen atau pengujian beban lebih lanjut, gunakan simulator kotak surat Amazon SES. Email yang Anda kirim ke simulator kotak surat tidak dihitung terhadap kuota pengiriman atau kecepatan pentalan dan aduan Anda. Untuk informasi lebih lanjut, lihat [Menggunakan simulator kotak surat secara manual](send-an-email-from-console.md#send-email-simulator).

**Pilih bahasa pemrograman untuk melihat contoh bahasa tersebut:**

**Awas**  
Amazon SES tidak merekomendasikan penggunaan kredensil statis. Lihat [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)untuk mempelajari cara meningkatkan postur keamanan Anda dengan menghapus kredensi hard-code dari kode sumber Anda. Tutorial ini hanya disediakan untuk tujuan menguji antarmuka Amazon SES SMTP di lingkungan non-produksi.

------
#### [ Java ]

Contoh ini menggunakan [Eclipse IDE](http://www.eclipse.org/) dan [JavaMail API](https://github.com/javaee/javamail/releases) untuk mengirim email melalui Amazon SES menggunakan antarmuka SMTP.

Sebelum Anda melakukan prosedur berikut, selesaikan tugas di [Menyiapkan Amazon Simple Email Service](setting-up.md).

**Untuk mengirim email menggunakan antarmuka SMTP Amazon SES dengan Java**

1. Di browser web, buka [JavaMail GitHub halaman](https://github.com/javaee/javamail/releases). Di bawah **Assets**, pilih **javax.mail.jar** untuk mengunduh versi terbaru. JavaMail
**penting**  
Tutorial ini membutuhkan JavaMail versi 1.5 atau yang lebih baru. Prosedur ini diuji menggunakan JavaMail versi 1.6.1.

1. **Di web browser, buka [ GitHub halaman Aktivasi Jakarta](https://github.com/eclipse-ee4j/jaf/releases), dan di bawah JavaBeans Activation [Framework 1.2.1 Final Release](https://github.com/eclipse-ee4j/jaf/releases/tag/1.2.1), unduh jakarta.activation.jar**

1. Buat proyek di Eclipse dengan melakukan langkah-langkah berikut:

   1. Mulai Eclipse.

   1. Di Eclipse, pilih **File**, pilih **Baru**, lalu pilih **Proyek Java**.

   1. Di kotak dialog **Buat Proyek Java**, ketik nama proyek lalu pilih **Selanjutnya.**

   1. Di kotak dialog **Pengaturan Java**, pilih tab **Pustaka**.

   1. ****Pilih **Classpath** dan tambahkan dua file jar eksternal **javax.mail.jar dan jakarta.activation.jar** menggunakan tombol Add External. JARs****

   1. Pilih **Tambahkan Eksternal JARs**.

   1. Jelajahi folder tempat Anda mengunduh JavaMail. Pilih file `javax.mail.jar`, lalu pilih **Buka**.

   1. Di kotak dialog **Pengaturan Java**, pilih **Selesai**.

1. Di Eclipse, di jendela **Paket Explorer**, perluas proyek Anda.

1. Di bawah proyek Anda, klik kanan direktori **src**, pilih **Baru**, lalu pilih **Kelas**.

1. Di kotak dialog **Kelas Java Baru**, di bidang **Nama**, ketik `AmazonSESSample` lalu pilih **Selesai**.

1. Ganti seluruh isi **Amazon SESSample .java** dengan kode berikut:

   ```
     1. import java.util.Properties;
     2. 
     3. import javax.mail.Message;
     4. import javax.mail.Session;
     5. import javax.mail.Transport;
     6. import javax.mail.internet.InternetAddress;
     7. import javax.mail.internet.MimeMessage;
     8. 
     9. public class AmazonSESSample {
    10. 
    11.     // Replace sender@example.com with your "From" address.
    12.     // This address must be verified.
    13.     static final String FROM = "sender@example.com";
    14.     static final String FROMNAME = "Sender Name";
    15.     
    16.     // Replace recipient@example.com with a "To" address. If your account 
    17.     // is still in the sandbox, this address must be verified.
    18.     static final String TO = "recipient@example.com";
    19.     
    20.     // Replace smtp_username with your Amazon SES SMTP user name.
    21.     static final String SMTP_USERNAME = "smtp_username";
    22.       
    23.     // The name of the Configuration Set to use for this message.
    24.     // If you comment out or remove this variable, you will also need to
    25.     // comment out or remove the header below.
    26.     static final String CONFIGSET = "ConfigSet";
    27.     
    28.     // Amazon SES SMTP host name. This example uses the US West (Oregon) region.
    29.     // See https://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html#region-endpoints
    30.     // for more information.
    31.     static final String HOST = "email-smtp.us-west-2.amazonaws.com";
    32.     
    33.     // The port you will connect to on the Amazon SES SMTP endpoint. 
    34.     static final int PORT = 587;
    35.     
    36.     static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)";
    37.     
    38.     static final String BODY = String.join(
    39.             System.getProperty("line.separator"),
    40.             "<h1>Amazon SES SMTP Email Test</h1>",
    41.             "<p>This email was sent with Amazon SES using the ", 
    42.             "<a href='https://github.com/javaee/javamail'>Javamail Package</a>",
    43.             " for <a href='https://www.java.com'>Java</a>."
    44.         );
    45. 
    46.     public static void main(String[] args) throws Exception {
    47. 
    48.         // Create a Properties object to contain connection configuration information.
    49.         Properties props = System.getProperties();
    50.         props.put("mail.transport.protocol", "smtp");
    51.         props.put("mail.smtp.port", PORT); 
    52.         props.put("mail.smtp.starttls.enable", "true");
    53.         props.put("mail.smtp.auth", "true");
    54. 
    55.         // Create a Session object to represent a mail session with the specified properties. 
    56.         Session session = Session.getDefaultInstance(props);
    57. 
    58.         // Create a message with the specified information. 
    59.         MimeMessage msg = new MimeMessage(session);
    60.         msg.setFrom(new InternetAddress(FROM,FROMNAME));
    61.         msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
    62.         msg.setSubject(SUBJECT);
    63.         msg.setContent(BODY,"text/html");
    64.         
    65.         // Add a configuration set header. Comment or delete the 
    66.         // next line if you are not using a configuration set
    67.         msg.setHeader("X-SES-CONFIGURATION-SET", CONFIGSET);
    68.             
    69.         // Create a transport.
    70.         Transport transport = session.getTransport();
    71. 
    72.         // Get the password 
    73.         String SMTP_PASSWORD = fetchSMTPPasswordFromSecureStorage();
    74.                     
    75.         // Send the message.
    76.         try
    77.         {
    78.             System.out.println("Sending...");
    79.             
    80.             // Connect to Amazon SES using the SMTP username and password you specified above.
    81.             transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
    82.             
    83.             // Send the email.
    84.             transport.sendMessage(msg, msg.getAllRecipients());
    85.             System.out.println("Email sent!");
    86.         }
    87.         catch (Exception ex) {
    88.             System.out.println("The email was not sent.");
    89.             System.out.println("Error message: " + ex.getMessage());
    90.         }
    91.         finally
    92.         {
    93.             // Close and terminate the connection.
    94.             transport.close();
    95.         }
    96.     }
    97. 
    98.     static String fetchSMTPPasswordFromSecureStorage() {
    99.         /* IMPLEMENT THIS METHOD */
   100.         // For example, you might fetch it from a secure location or AWS Secrets Manager: https://aws.amazon.com/secrets-manager/
   101.     }
   102. }
   ```

1. Di **SESSampleAmazon.java**, ganti alamat email berikut dengan nilai Anda sendiri:
**penting**  
Alamat email peka huruf besar kecil. Pastikan alamatnya sama persis dengan alamat yang Anda verifikasi.
   + *sender@example.com*— Ganti dengan alamat email “Dari” Anda. Alamat ini harus diverifikasi sebelum Anda menjalankan program ini. Untuk informasi selengkapnya, lihat [Identitas terverifikasi di Amazon SES](verify-addresses-and-domains.md).
   + *recipient@example.com*— Ganti dengan alamat email “Ke” Anda. Jika akun Anda masih berada di sandbox, Anda harus memverifikasi alamat ini sebelum menggunakannya. Untuk informasi selengkapnya, lihat [Minta akses produksi (Pindah dari kotak pasir Amazon SES)](request-production-access.md).

1. Di **SESSampleAmazon.java** ganti yang berikut ini dengan nilai Anda sendiri:
   + *smtp\$1username*— Ganti dengan kredensi nama pengguna SMTP Anda. Perhatikan bahwa kredensial nama pengguna SMTP Anda adalah string 20 karakter huruf dan angka, bukan nama yang dapat dimengerti.
   + *smtp\$1password*— Melaksanakan ``fetchSMTPPasswordFromSecureStorage`` untuk mengambil kata sandi.

1. (Opsional) Jika Anda ingin menggunakan titik akhir SMTP Amazon SES di Wilayah AWS selain*email-smtp.us-west-2.amazonaws.com*, ubah nilai variabel `HOST` ke titik akhir yang ingin Anda gunakan. Untuk daftar wilayah di mana Amazon SES tersedia, lihat [Layanan Email Sederhana Amazon (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region) di *Referensi Umum AWS*.

1. (Opsional) Jika Anda ingin menggunakan set konfigurasi saat mengirim email ini, ubah nilai variabel *ConfigSet* menjadi nama set konfigurasi. Untuk informasi selengkapnya tentang set konfigurasi, lihat [Mengelola set konfigurasi di Amazon SES](using-configuration-sets.md).

1. Simpan **Amazon SESSample .java**.

1. Untuk membangun proyek, pilih **Proyek** lalu pilih **Bangun Proyek**. (Jika opsi ini dinonaktifkan, maka Anda mungkin memiliki pembangunan otomatis yang diaktifkan.)

1. Untuk memulai program dan mengirim email, pilih **Jalankan** lalu pilih **Jalankan** lagi.

1. Tinjau output. Jika email berhasil dikirim, konsol menampilkan *“Email dikirim\$1”* Jika tidak, ini akan menampilkan pesan kesalahan.

1. Masuk ke klien email dari alamat penerima. Anda akan menemukan pesan yang Anda kirim.

------
#### [ PHP  ]

Contoh ini menggunakan PHPMailer kelas untuk mengirim email melalui Amazon SES menggunakan antarmuka SMTP. 

Sebelum Anda melakukan prosedur berikut, selesaikan tugas di [Menyiapkan Amazon Simple Email Service](setting-up.md). Selain menyiapkan Amazon SES Anda harus menyelesaikan prasyarat berikut untuk mengirim email dengan PHP:

**Prasyarat:**
+ **Instal PHP** - PHP tersedia di [http://php.net/downloads.php](https://php.net/downloads.php). Setelah Anda memasang PHP, tambahkan jalur ke PHP di variabel lingkungan Anda, sehingga Anda dapat menjalankan PHP dari prompt perintah.
+ **Instal manajer ketergantungan Composer - Setelah Anda menginstal manajer** ketergantungan Composer, Anda dapat mengunduh dan menginstal PHPMailer kelas dan dependensinya. Untuk menginstal Composer, ikuti petunjuk instalasi di [https://getcomposer.org/download](https://getcomposer.org/download).
+ **Instal PHPMailer kelas** - Setelah Anda menginstal Composer, jalankan perintah berikut untuk menginstal PHPMailer: 

  ```
  path/to/composer require phpmailer/phpmailer
  ```

  Pada perintah sebelumnya, ganti *path/to/* dengan jalur tempat Anda menginstal Composer.

**Untuk mengirim email menggunakan antarmuka SMTP Amazon SES dengan PHP**

1. Buat file bernama **amazon-ses-smtp-sample.php**. Buka file dengan editor teks dan tempel di kode berikut:

   ```
    1. <?php
    2. 
    3. // Import PHPMailer classes into the global namespace
    4. // These must be at the top of your script, not inside a function
    5. use PHPMailer\PHPMailer\PHPMailer;
    6. use PHPMailer\PHPMailer\Exception;
    7. 
    8. // If necessary, modify the path in the require statement below to refer to the
    9. // location of your Composer autoload.php file.
   10. require 'vendor/autoload.php';
   11. 
   12. // Replace sender@example.com with your "From" address.
   13. // This address must be verified with Amazon SES.
   14. $sender = 'sender@example.com';
   15. $senderName = 'Sender Name';
   16. 
   17. // Replace recipient@example.com with a "To" address. If your account
   18. // is still in the sandbox, this address must be verified.
   19. $recipient = 'recipient@example.com';
   20. 
   21. // Replace smtp_username with your Amazon SES SMTP user name.
   22. $usernameSmtp = 'smtp_username';
   23. 
   24. // Specify a configuration set. If you do not want to use a configuration
   25. // set, comment or remove the next line.
   26. $configurationSet = 'ConfigSet';
   27. 
   28. // If you're using Amazon SES in a region other than US West (Oregon),
   29. // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP
   30. // endpoint in the appropriate region.
   31. $host = 'email-smtp.us-west-2.amazonaws.com';
   32. $port = 587;
   33. 
   34. // The subject line of the email
   35. $subject = 'Amazon SES test (SMTP interface accessed using PHP)';
   36. 
   37. // The plain-text body of the email
   38. $bodyText =  "Email Test\r\nThis email was sent through the
   39.     Amazon SES SMTP interface using the PHPMailer class.";
   40. 
   41. // The HTML-formatted body of the email
   42. $bodyHtml = '<h1>Email Test</h1>
   43.     <p>This email was sent through the
   44.     <a href="https://aws.amazon.com/ses">Amazon SES</a> SMTP
   45.     interface using the <a href="https://github.com/PHPMailer/PHPMailer">
   46.     PHPMailer</a> class.</p>';
   47. 
   48. $mail = new PHPMailer(true);
   49. 
   50. try {
   51.     // Specify the SMTP settings.
   52.     $mail->isSMTP();
   53.     $mail->setFrom($sender, $senderName);
   54.     $mail->Username   = $usernameSmtp;
   55.     $mail->Password   = fetchSMTPPasswordFromSecureStorage();
   56.     $mail->Host       = $host;
   57.     $mail->Port       = $port;
   58.     $mail->SMTPAuth   = true;
   59.     $mail->SMTPSecure = 'tls';
   60.     $mail->addCustomHeader('X-SES-CONFIGURATION-SET', $configurationSet);
   61. 
   62.     // Specify the message recipients.
   63.     $mail->addAddress($recipient);
   64.     // You can also add CC, BCC, and additional To recipients here.
   65. 
   66.     // Specify the content of the message.
   67.     $mail->isHTML(true);
   68.     $mail->Subject    = $subject;
   69.     $mail->Body       = $bodyHtml;
   70.     $mail->AltBody    = $bodyText;
   71.     $mail->Send();
   72.     echo "Email sent!" , PHP_EOL;
   73. } catch (phpmailerException $e) {
   74.     echo "An error occurred. {$e->errorMessage()}", PHP_EOL; //Catch errors from PHPMailer.
   75. } catch (Exception $e) {
   76.     echo "Email not sent. {$mail->ErrorInfo}", PHP_EOL; //Catch errors from Amazon SES.
   77. }
   78. function fetchSMTPPasswordFromSecureStorage() {
   79. /* IMPLEMENT THIS METHOD */
   80. // For example, you might fetch it from a secure location or AWS Secrets Manager: https://aws.amazon.com/secrets-manager/
   81. }
   82. 
   83. ?>
   ```

1. Di **amazon-ses-smtp-sample.php**, ganti yang berikut ini dengan nilai Anda sendiri:
   + *sender@example.com*— Ganti dengan alamat email yang telah Anda verifikasi dengan Amazon SES. Untuk informasi selengkapnya, lihat [Identitas terverifikasi](verify-addresses-and-domains.md). Alamat email di Amazon SES peka huruf besar kecil. Pastikan alamat yang Anda masukkan sama persis dengan alamat yang Anda verifikasi.
   + *recipient@example.com*— Ganti dengan alamat penerima. Jika akun Anda masih berada di sandbox, Anda harus memverifikasi alamat ini sebelum menggunakannya. Untuk informasi lebih lanjut, lihat [Minta akses produksi (Pindah dari kotak pasir Amazon SES)](request-production-access.md). Pastikan alamat yang Anda masukkan sama persis dengan alamat yang Anda verifikasi.
   + *smtp\$1username*— Ganti dengan kredensi nama pengguna SMTP Anda, yang Anda peroleh dari halaman [Pengaturan SMTP konsol](https://console.aws.amazon.com/ses/home?#smtp-settings:) Amazon SES. Kredensial ini **tidak** sama dengan access key ID AWS Anda. Perhatikan bahwa kredensial nama pengguna SMTP Anda adalah string 20 karakter huruf dan angka, bukan nama yang dapat dimengerti.
   + *smtp\$1password*— Melaksanakan ``fetchSMTPPasswordFromSecureStorage`` untuk mengambil kata sandi.
   + (Opsional) *ConfigSet* - Jika Anda ingin menggunakan set konfigurasi saat mengirim email ini, ganti nilai ini dengan nama set konfigurasi. Untuk informasi selengkapnya tentang set konfigurasi, lihat [Mengelola set konfigurasi di Amazon SES](using-configuration-sets.md).
   + (Opsional) *email-smtp.us-west-2.amazonaws.com* - Jika Anda ingin menggunakan titik akhir SMTP Amazon SES di Wilayah selain AS Barat (Oregon), ganti ini dengan titik akhir SMTP Amazon SES di Wilayah yang ingin Anda gunakan. Untuk daftar titik akhir URLs SMTP di mana Amazon Wilayah AWS SES tersedia, lihat Amazon [Simple Email Service (Amazon SES) di](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region). *Referensi Umum AWS*

1. Simpan **amazon-ses-smtp-sample.php**.

1. Untuk menjalankan program, buka prompt perintah di direktori yang sama **amazon-ses-smtp-sampledengan.php**, lalu ketik**php amazon-ses-smtp-sample.php**.

1. Tinjau output. Jika email berhasil dikirim, konsol menampilkan *“Email dikirim\$1”* Jika tidak, ini akan menampilkan pesan kesalahan.

1. Masuk ke klien email alamat penerima. Anda akan menemukan pesan yang Anda kirim.

------

# Mengintegrasikan Amazon SES dengan server email yang ada
<a name="send-email-smtp-existing-server"></a>

Jika saat ini Anda mengelola server email Anda sendiri, Anda dapat menggunakan titik akhir SMTP Amazon SES untuk mengirim semua email keluar Anda ke Amazon SES. Klien email dan aplikasi yang sudah ada tidak perlu diubah; perubahan pada Amazon SES akan terlihat.

Beberapa agen transfer surat (MTAs) mendukung pengiriman email melalui relay SMTP. Bagian ini memberikan panduan umum tentang cara mengkonfigurasi beberapa populer MTAs untuk mengirim email menggunakan antarmuka Amazon SES SMTP.

Titik akhir SMTP Amazon SES mengharuskan semua koneksi untuk dienkripsi menggunakan Keamanan Lapisan Pengangkutan (TLS).

**Topics**
+ [Mengintegrasikan Amazon SES dengan Postfix](postfix.md)
+ [Mengintegrasikan Amazon SES dengan Sendmail](send-email-sendmail.md)
+ [Mengintegrasikan Amazon SES dengan Microsoft Windows Server IIS SMTP](send-email-windows-server.md)

# Mengintegrasikan Amazon SES dengan Postfix
<a name="postfix"></a>

Postfix adalah pilihan lain untuk Agen Transfer Pesan Sendmail (MTA) yang digunakan secara luas. Untuk informasi tentang Postfix, buka [http://www.postfix.org](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
<a name="send-email-postfix-prereqs"></a>

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 Postfix`sendmail`, jangan bingung dengan aplikasi Sendmail.
+ Instal Postfix. Prosedur untuk menyelesaikan langkah ini bervariasi tergantung pada sistem operasi yang Anda gunakan.
+ Instal paket autentikasi SASL. 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](creating-identities.md#verify-email-addresses-procedure).
+ 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 kotak pasir Amazon SES)](request-production-access.md).

## Mengonfigurasi Postfix
<a name="send-email-postfix"></a>

Selesaikan prosedur berikut untuk mengonfigurasi server surat 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* perintah sebelumnya dengan titik akhir SMTP Wilayah yang sesuai. Untuk informasi selengkapnya, lihat [Wilayah dan Amazon SES](regions.md).

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

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

1. Tambahkan baris berikut ke `/etc/postfix/sasl_passwd`:

   ```
   [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
   ```
**catatan**  
Ganti *SMTPUSERNAME* dan *SMTPPASSWORD* dengan kredensyal masuk SMTP Anda. Kredensi masuk SMTP Anda tidak sama dengan ID kunci AWS akses dan kunci akses rahasia Anda. Untuk informasi selengkapnya tentang jenis kredensial, lihat [Mendapatkan kredensial SMTP Amazon SES](smtp-credentials.md).  
Jika Anda menggunakan Amazon SES di AWS Wilayah selain AS Barat (Oregon), ganti *email-smtp.us-west-2.amazonaws.com* contoh sebelumnya dengan titik akhir SMTP Wilayah yang sesuai. Untuk informasi selengkapnya, lihat [Wilayah dan Amazon SES](regions.md).

   Simpan dan tutup `sasl_passwd`.

1. Pada prompt perintah, ketik perintah berikut untuk membuat file basis data hashmap yang berisi kredensial SMTP Anda:

   ```
   sudo postmap hash:/etc/postfix/sasl_passwd
   ```

1. (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 kredensial SMTP Anda, kami sarankan Anda mengubah kepemilikan file dan izin 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
      ```

   1. 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
      ```

1. Beritahu Postfix tempat untuk menemukan sertifikat CA (diperlukan untuk memverifikasi sertifikat server Amazon SES). 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 | sudo tee /etc/ssl/certs/ca-bundle.crt > /dev/null
     ```

     Setelah Anda membuat sertifikat, ketik perintah berikut:

     ```
     sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
     ```

1. Ketik perintah berikut untuk memulai server Postfix (atau untuk memuat ulang pengaturan konfigurasi jika server sudah berjalan):

   ```
   sudo postfix start; sudo postfix reload
   ```

1. Kirim email percobaan dengan mengetik berikut pada baris perintah, tekan Enter setelah setiap baris. Ganti *sender@example.com* dengan alamat email Dari Anda. Alamat Pengirim harus diverifikasi untuk digunakan dengan Amazon SES. 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.                
   .
   ```

1. 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
<a name="send-email-postfix-advanced"></a>

Contoh ini menunjukkan cara mengirim email yang menggunakan [set konfigurasi](using-configuration-sets.md), dan yang menggunakan pengodean MIME-multipart untuk mengirim teks biasa dan versi HTML pesan, bersama dengan lampiran. Informasi ini juga mencakup [tanda tautan](faqs-metrics.md#sending-metric-faqs-clicks-q5), 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 email beberapa bagian MIME menggunakan Postfix**

1. Di editor teks, buat file baru bernama `mime-email.txt`.

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

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

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

# Mengintegrasikan Amazon SES dengan Sendmail
<a name="send-email-sendmail"></a>

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](https://www.proofpoint.com/us/open-source-email-solution) dari situs web Proofpoint, atau melalui manajer paket dari sebagian besar distribusi Linux.

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

**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
<a name="send-email-sendmail-prerequisites"></a>

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 lebih lanjut, lihat [Membuat identitas alamat email](creating-identities.md#verify-email-addresses-procedure).

  Jika akun Anda berada di sandbox Amazon SES, Anda juga harus memverifikasi alamat tujuan pengiriman email. Untuk informasi lebih lanjut, lihat [Minta akses produksi (Pindah dari kotak pasir Amazon SES)](request-production-access.md).

Jika Anda menggunakan Amazon SES untuk mengirim email dari instans Amazon EC2, Anda juga harus menyelesaikan langkah-langkah berikut:
+ Anda mungkin perlu menetapkan Alamat IP Elastis untuk instans Amazon EC2 Anda agar menerima penyedia email untuk menerima email Anda. Untuk informasi selengkapnya, lihat [Alamat IP Elastis Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) di Panduan Pengguna *Amazon EC2*.
+ Amazon Elastic Compute Cloud (Amazon EC2) membatasi lalu lintas email melalui port 25 secara default. Untuk menghindari waktu habis saat mengirim email melalui titik akhir SMTP dari Amazon EC2, Anda dapat meminta pembatasan ini dihapus. Untuk informasi selengkapnya, lihat [Bagaimana cara menghapus pembatasan pada port 25 dari instans AWS Lambda atau fungsi Amazon EC2 saya](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)? di pusat AWS pengetahuan.

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

## Mengonfigurasi Sendmail
<a name="send-email-sendmail-procedure"></a>

Selesaikan langkah-langkah di bagian ini untuk mengonfigurasi Sendmail untuk mengirim email 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 instans *email-smtp.us-west-2.amazonaws.com* di prosedur ini dengan titik akhir SMTP dari wilayah yang diinginkan. Untuk daftar titik akhir URLs SMTP di mana Amazon Wilayah AWS SES tersedia, lihat Amazon [Simple Email Service (Amazon SES) di](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region). *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 endpoint Amazon SES SMTP yang ingin Anda gunakan.
   + Ganti *smtpUsername* dengan nama pengguna Amazon SES SMTP Anda.
   + Ganti *smtpPassword* dengan kata sandi SMTP Amazon SES Anda.
**catatan**  
Kredensi masuk SMTP Anda berbeda dari ID Kunci AWS Akses dan Kunci Akses Rahasia Anda. Untuk informasi selengkapnya tentang mendapatkan kredenal masuk SMTP Anda, lihat. [Mendapatkan kredensial SMTP Amazon SES](smtp-credentials.md)

   Setelah selesai, simpan `authinfo`.

1. 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'
   ```

1. Di baris perintah, ketik perintah berikut untuk menambahkan dukungan untuk menyampaikan ke titik akhir Amazon SES SMTP.

   ```
   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 titik akhir SMTP Amazon SES yang ingin Anda gunakan.

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

   ```
   sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
   ```

1. 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'
   ```

1. 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)dnl
   ```

   Di teks sebelumnya, lakukan hal berikut:
   + Ganti *email-smtp.us-west-2.amazonaws.com* dengan endpoint Amazon SES SMTP 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 di instans Amazon EC2, Anda harus menyelesaikan [Permintaan untuk Menghapus Batas Pengiriman Email](https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request).

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

   ```
   sudo chmod 666 /etc/mail/sendmail.cf
   ```

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

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

   ```
   sudo chmod 644 /etc/mail/sendmail.cf
   ```

1. 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
   ```

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

   1. 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\$1D untuk mengirimkannya.

1. 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*. 

# Mengintegrasikan Amazon SES dengan Microsoft Windows Server IIS SMTP
<a name="send-email-windows-server"></a>

Anda dapat mengonfigurasi server SMTP Microsoft Windows Server IIS untuk mengirim email melalui Amazon SES. Instruksi ini ditulis menggunakan Microsoft Windows Server 2022 pada instans Amazon EC2. Anda dapat menggunakan konfigurasi yang sama di Microsoft Windows Server 2016.

**catatan**  
Windows Server 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.

**Untuk mengintegrasikan server SMTP Microsoft Windows Server IIS dengan Amazon SES**

1. Pertama, atur Microsoft Windows Server 2022 menggunakan instruksi berikut.

   1. Dari [konsol manajemen Amazon EC2](https://console.aws.amazon.com/ec2/home), luncurkan instans Amazon EC2 Basis Microsoft Windows Server 2022 baru.

   1. Hubungkan ke instans dan masuk menggunakan Remote Desktop dengan mengikuti petunjuk di [Memulai dengan Instans Windows Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2Win_GetStarted.html).

   1. Luncurkan Dasbor Pengelola Server.

   1. Instal peran **Server Web**. Pastikan untuk menyertakan **alat Kompatibilitas Manajemen IIS 10** (opsi di bawah kotak centang **Server Web**).

   1. Instal fitur **Server SMTP**.

1. Selanjutnya, konfigurasikan layanan SMTP IIS menggunakan petunjuk berikut.

   1.  Mengembalikan ke Dasbor Pengelola Server.

   1. Dari menu **Tools**, pilih **Internet Information Services (IIS) 10.0 Manager**.

   1. Klik kanan **Server Virtual SMTP \$11** lalu pilih **Properti**.

   1. Di tab **Akses**, di bawah **Pembatasan Relay**, pilih **Relay**.

   1. Di kotak dialog **Pembatasan Relay**, pilih **Tambahkan**.

   1. Di bawah **Komputer Tunggal**, masukkan **127.0.0.1** sebagai alamat IP. Sekarang Anda telah diberi akses ke server ini untuk relay email ke Amazon SES melalui layanan SMTP IIS.

      Di prosedur ini, kita beranggapan bahwa email Anda dihasilkan di server ini. Jika aplikasi yang menghasilkan email berjalan di server terpisah, Anda perlu memberikan akses relay untuk server tersebut di SMTP IIS.
**catatan**  
Untuk memperpanjang relay SMTP ke subnet privat, untuk **Pembatasan Relay**, gunakan **Komputer Tunggal** 127.0.0.1 dan **Grup Komputer** 172.1.1.0 - 255.255.255.0 (di bagian netmask). Untuk **Koneksi**, gunakan **Komputer Tunggal** 127.0.0.1 dan **Grup Komputer** 172.1.1.0 - 255.255.255.0 (di bagian netmask).

1. Terakhir, konfigurasikan server untuk mengirim email melalui Amazon SES menggunakan petunjuk berikut.

   1. Kembali ke kotak dialog **Properti Server Virtual SMTP \$11** lalu pilih tab **Penyampaian**.

   1. Di tab **Penyampaian**, pilih **Keamanan Outbound**.

   1. Pilih **Otentikasi Dasar**, lalu masukkan kredenal SMTP Amazon SES Anda. Anda dapat memperoleh kredensial ini dari konsol Amazon SES menggunakan prosedur di [Mendapatkan kredensial SMTP Amazon SES](smtp-credentials.md).
**penting**  
Kredensi SMTP Anda tidak sama dengan ID kunci AWS akses dan kunci akses rahasia Anda. Jangan mencoba menggunakan AWS kredensil Anda untuk mengautentikasi diri Anda terhadap titik akhir SMTP. Untuk informasi selengkapnya tentang kredensial, lihat [Tipe kredensial Amazon SES](send-email-concepts-credentials.md).

   1. Pastikan bahwa **Enkripsi TLS** dipilih.

   1. Kembali ke tab **Penyampaian**.

   1. Pilih **Koneksi Outbound**.

   1. Di kotak dialog **Koneksi Outbound**, pastikan bahwa port adalah 25 atau 587. 

   1. Pilih **Lanjutan**.

   1. Untuk nama **Host pintar**, masukkan titik akhir Amazon SES yang akan Anda gunakan (misalnya, *email-smtp.us-west-2.amazonaws.com*). Untuk daftar titik akhir URLs Wilayah AWS tempat Amazon SES tersedia, lihat [Amazon Simple Email Service (Amazon SES](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)) di. *Referensi Umum AWS*

   1.  Mengembalikan ke Dasbor Pengelola Server.

   1. Di Dasbor Manager Server, klik kanan **Server Virtual SMTP \$11** lalu mulai ulang layanan untuk mengambil konfigurasi baru.

   1. Kirim email melalui server ini. Anda dapat memeriksa header pesan untuk mengonfirmasi bahwa pengiriman dilakukan melalui Amazon SES.

# Menguji koneksi Anda ke antarmuka SMTP Amazon SES menggunakan baris perintah
<a name="send-email-smtp-client-command-line"></a>

Anda dapat menggunakan metode yang dijelaskan di bagian ini dari baris perintah untuk menguji koneksi Anda ke titik akhir SMTP Amazon SES, memvalidasi kredensial SMTP, dan memecahkan masalah koneksi. Prosedur ini menggunakan alat dan pustaka yang termasuk dengan sistem operasi yang paling umum.

Untuk informasi tambahan tentang pemecahan masalah koneksi SMTP, lihat [Masalah SMTP Amazon SES](troubleshoot-smtp.md).

## Prasyarat
<a name="send-email-smtp-client-command-line-prereqs"></a>

Ketika Anda terhubung ke antarmuka SMTP Amazon SES, Anda harus menyediakan satu set kredensial SMTP. Kredensyal SMTP ini berbeda dari kredensyal standar Anda. AWS Dua tipe kredensial tidak dapat dipertukarkan. Untuk informasi selengkapnya tentang mendapatkan kredensial SMTP Anda, lihat [Mendapatkan kredensial SMTP Amazon SES](smtp-credentials.md).

## Menguji koneksi Anda ke antarmuka SMTP Amazon SES
<a name="send-email-smtp-client-command-line-testing"></a>

Anda dapat menggunakan baris perintah untuk menguji koneksi Anda ke antarmuka SMTP Amazon SES tanpa mengautentikasi atau mengirim pesan apa pun. Prosedur ini berguna untuk memecahkan masalah konektivitas dasar. Jika koneksi pengujian Anda gagal, lihat[Masalah SMTP](troubleshoot-smtp.md).

Bagian ini mencakup prosedur untuk menguji koneksi Anda menggunakan OpenSSL (yang disertakan dengan sebagian besar distribusi Linux, macOS, dan Unix, dan juga tersedia untuk Windows) dan `Test-NetConnection` cmdlet PowerShell di (yang disertakan dengan versi Windows terbaru).

------
#### [ Linux, macOS, or Unix ]

Ada dua cara untuk terhubung ke antarmuka SMTP Amazon SES dengan OpenSSL: menggunakan SSL eksplisit melalui port 587, atau menggunakan SSL implisit melalui port 465.

**Untuk terhubung ke antarmuka SMTP menggunakan SSL eksplisit**
+ Di baris perintah, masukkan perintah berikut untuk menghubungkan ke server SMTP Amazon SES:

  ```
  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 URL titik akhir SMTP Amazon SES untuk Wilayah Anda. AWS Untuk informasi selengkapnya, lihat [Wilayah dan Amazon SES](regions.md).

  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 SSL implisit untuk terhubung ke antarmuka SMTP melalui port 465.

**Untuk terhubung ke antarmuka SMTP menggunakan SSL implisit**
+ Di baris perintah, masukkan perintah berikut untuk menghubungkan ke server SMTP Amazon SES:

  ```
  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 URL titik akhir SMTP Amazon SES untuk Wilayah Anda. AWS Untuk informasi selengkapnya, lihat [Wilayah dan Amazon SES](regions.md).

  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](https://docs.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection) cmdlet in PowerShell untuk terhubung ke server SMTP Amazon SES.

**catatan**  
Cmdlet `Test-NetConnection` dapat menentukan apakah komputer Anda dapat terhubung ke titik akhir SMTP Amazon SES. Namun, ini tidak menguji apakah komputer Anda dapat membuat koneksi SSL implisit atau eksplisit ke titik akhir SMTP. Untuk menguji koneksi SSL, Anda dapat menginstal OpenSSL untuk Windows untuk mengirim email pengujian.

**Untuk terhubung ke antarmuka SMTP menggunakan cmdlet `Test-NetConnection`**
+ Masuk PowerShell, masukkan perintah berikut untuk terhubung ke server SMTP Amazon SES:

  ```
  Test-NetConnection -Port 587 -ComputerName email-smtp.us-west-2.amazonaws.com
  ```

  Pada perintah sebelumnya, ganti *email-smtp.us-west-2.amazonaws.com* dengan URL titik akhir SMTP Amazon SES untuk AWS Wilayah Anda, dan ganti *587* dengan nomor port. Untuk informasi selengkapnya tentang titik akhir wilayah di Amazon SES, lihat [Wilayah dan Amazon SES](regions.md).

  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 antarmuka SMTP Amazon SES
<a name="send-email-using-openssl"></a>

Anda juga dapat menggunakan baris perintah untuk mengirim pesan menggunakan antarmuka SMTP Amazon SES. Prosedur ini berguna untuk menguji kredensial SMTP dan untuk menguji kemampuan penerima tertentu untuk menerima pesan yang Anda kirim dengan menggunakan Amazon SES.

------
#### [ Linux, macOS, or Unix ]

Saat pengirim email terhubung ke server SMTP, klien mengeluarkan set permintaan standar, dan server membalas setiap permintaan dengan respons standar. Serangkaian permintaan dan respons ini disebut *Percakapan SMTP*. Ketika Anda terhubung ke server SMTP Amazon SES menggunakan OpenSSL, server mengharapkan percakapan SMTP terjadi.

Ketika Anda menggunakan OpenSSL untuk terhubung ke antarmuka SMTP, Anda harus mengodekan kredensial SMTP Anda menggunakan pengodean base64. Bagian ini mencakup prosedur untuk pengodean kredensial Anda menggunakan base64.

**Untuk mengirim email dari baris perintah menggunakan antarmuka SMTP**

1. Masukkan yang berikut ini di baris perintah dan ganti *email-smtp.us-west-2.amazonaws.com* dengan URL titik akhir SMTP Amazon SES untuk Anda. Wilayah AWS Untuk informasi lebih lanjut, lihat[Wilayah dan Amazon SES](regions.md). :

   ```
    1. #!/bin/bash
    2. 
    3. # Prompt user to provide following information
    4. read -p "Configuration set: " CONFIGSET
    5. read -p "Enter SMTP username: " SMTPUsername
    6. read -p "Enter SMTP password: " SMTPPassword
    7. read -p "Sender email address: " MAILFROM
    8. read -p "Receiver email address: " RCPT
    9. read -p "Email subject: " SUBJECT
   10. read -p "Message to send: " DATA
   11. 
   12. echo
   13. 
   14. # Encode SMTP username and password using base64
   15. EncodedSMTPUsername=$(echo -n "$SMTPUsername" | openssl enc -base64)
   16. EncodedSMTPPassword=$(echo -n "$SMTPPassword" | openssl enc -base64)
   17. 
   18. # Construct the email
   19. Email="EHLO example.com
   20. AUTH LOGIN
   21. $EncodedSMTPUsername
   22. $EncodedSMTPPassword
   23. MAIL FROM: $MAILFROM
   24. RCPT TO: $RCPT
   25. DATA
   26. X-SES-CONFIGURATION-SET: $CONFIGSET
   27. From: $MAILFROM
   28. To: $RCPT
   29. Subject: $SUBJECT
   30. 
   31. $DATA
   32. .
   33. QUIT"
   34. 
   35. echo "$Email" | openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
   ```

1. Pada prompt untuk setiap variabel, masukkan nilai Anda.

1. 
   + Untuk mengirim menggunakan SSL implisit melalui port 465, gunakan:

     ```
     openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465
     ```

   Jika pesan diterima oleh Amazon SES, Anda akan menemukan 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](https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netframework-4.8)kelas untuk mengirim email menggunakan SSL eksplisit 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 menggunakan SSL eksplisit**

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

1. Buat perubahan berikut ke file yang Anda buat di langkah sebelumnya:
   + Ganti *sender@example.com* dengan alamat email tempat Anda ingin mengirim pesan.
   + Ganti *recipient@example.com* dengan alamat email yang ingin Anda kirimi pesan.
   + Ganti *email-smtp.us-west-2.amazonaws.com* dengan URL titik akhir SMTP Amazon SES untuk Wilayah Anda. AWS Untuk informasi selengkapnya, lihat [Wilayah dan Amazon SES](regions.md).

1. Di PowerShell, masukkan perintah berikut:

   ```
   .\path\to\SendEmail.ps1
   ```

   Pada perintah sebelumnya, ganti *path\$1to\$1SendEmail.ps1* dengan path ke file yang Anda buat di langkah 1.

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

Atau, Anda dapat menggunakan [System.Web.Mail. SmtpMail](https://docs.microsoft.com/en-us/dotnet/api/system.web.mail.smtpmail?view=netframework-4.8)kelas untuk mengirim email menggunakan SSL implisit 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 menggunakan SSL implisit**

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

1. Buat perubahan berikut ke file yang Anda buat di langkah sebelumnya:
   + Ganti *sender@example.com* dengan alamat email tempat Anda ingin mengirim pesan.
   + Ganti *recipient@example.com* dengan alamat email yang ingin Anda kirimi pesan.
   + Ganti *email-smtp.us-west-2.amazonaws.com* dengan URL titik akhir SMTP Amazon SES untuk Wilayah Anda. AWS Untuk informasi selengkapnya, lihat [Wilayah dan Amazon SES](regions.md).

1. Di PowerShell, masukkan perintah berikut:

   ```
   .\path\to\SendEmail.ps1
   ```

   Pada perintah sebelumnya, ganti *path\$1to\$1SendEmail.ps1* dengan path ke file yang Anda buat di langkah 1.

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

------