Pengantar
AWS SES (Layanan Email Sederhana) adalah layanan pengiriman dan penerimaan email yang mudah disiapkan. Biasanya sulit, rewel, dan membosankan untuk mengelola sistem email lokal, jadi outsourcing prosesnya adalah pilihan yang populer.
Kami dapat menggunakan Amazon SES untuk mengirim email transaksional, email pemasaran, atau jenis email pemberitahuan lainnya ke klien kami. Ini adalah solusi yang terjangkau untuk bisnis dari semua ukuran yang menggunakan email untuk terhubung dengan pelanggan mereka karena dibangun di atas infrastruktur yang dapat diandalkan dan dapat diskalakan dari Layanan Web Amazon (AWS).
Untuk mengirim email massal, aplikasi apa pun dapat berinteraksi dengan Amazon SES. Kami hanya membayar email yang benar-benar kami kirim, apakah itu email transaksional atau email pemasaran. Selain itu, berbagai konfigurasi, termasuk alamat IP khusus, bersama, atau dimiliki, didukung oleh Amazon SES. Bisnis dapat menghitung setiap email dengan menggunakan dasbor keterkiriman dan laporan tentang informasi pengirim.
Dalam panduan ini kita akan mengonfigurasi instans AWS SES di suatu wilayah dan kemudian mengintegrasikannya Musim Semi Cloud untuk AWS yang merupakan sub-proyek dari Awan Musim Semi. Kami akan mencoba berbagai skenario untuk mengirim email dari aplikasi kami.
Catatan: Anda dapat menemukan semua kode sumber yang digunakan dalam panduan di Github.
Siklus Hidup Pengiriman Email menggunakan AWS SES
Mari kita lihat bagaimana daur hidup email yang dikirim oleh aplikasi sampai ke kotak surat tujuan:
-
Aplikasi, dalam kasus kami, kode Spring Cloud meminta AWS SES untuk mengirim email ke satu atau lebih penerima.
-
SES awalnya memverifikasi permintaan, dan jika disetujui, menghasilkan pesan email dengan spesifikasi permintaan. Pesan email ini memiliki tajuk, badan, dan amplop dan sesuai dengan RFC 5322Definisi Format Pesan Internet.
-
SES kemudian mengirimkan pesan ke penerima penerima melalui Internet. Segera setelah pesan diserahkan ke SES, sering kali dikirim segera, dengan upaya pengiriman awal biasanya dilakukan dalam hitungan milidetik.
-
Ada beberapa hasil saat ini. Contohnya:
- Pengiriman sukses: Penyedia layanan Internet (ISP) menerima email dan mengirimkannya ke penerima yang dituju.
- Pantulan Keras: Karena alamat penerima tidak valid, ISP menolak email tersebut. ISP mengirimkan kembali pemberitahuan hard bounce ke Amazon SES, yang memberi tahu pengirim melalui email atau dengan menerbitkannya ke topik Amazon Simple Notification Service (Amazon SNS) yang diatur untuk menerima pemberitahuan ini.
- Pantulan Lembut: Karena kondisi seperti kotak masuk penerima penuh, domain tidak ada, atau keadaan yang lewat seperti ISP terlalu sibuk untuk memproses permintaan, ISP mungkin tidak dapat mengirimkan email ke penerima. ISP kemudian mencoba lagi email tersebut hingga beberapa kali dan mengirimkan pesan soft bounce kepada SES. Jika SES tidak dapat mengirimkan email dalam jangka waktu yang ditentukan, SES akan menerbitkan acara tersebut ke topik SNS atau mengirimkan pesan hard bounce melalui email.
- Keluhan: Email diklasifikasikan sebagai spam oleh penerima dalam program email mereka. Pemberitahuan keluhan dikirimkan ke Amazon SES, yang kemudian menyampaikannya ke pengirim jika Amazon SES dan ISP memiliki loop umpan balik yang dibuat.
- Respon otomatis: ISP penerima memberi tahu Amazon SES tentang tanggapan otomatis dari penerima, seperti pemberitahuan di luar kantor, dan Amazon SES meneruskan pemberitahuan tersebut ke pengirim.
Saat pengiriman tidak berhasil, Amazon SES mengembalikan kesalahan ke pengirim dan menghapus email.
Menyiapkan Amazon SES
Tidak seperti Layanan AWS lainnya, praktis tidak perlu membuat instans SES karena semua akun AWS baru ditempatkan di kotak pasir AWS SES secara default. Setiap akun AWS memiliki akses kotak pasir untuk AWS SES di wilayah yang tersedia secara default.
Saat menggunakan mode kotak pasir, kami hanya dapat mengirim email ke identitas terverifikasi. Domain atau alamat email yang kami gunakan untuk mengirim email adalah identitas yang diverifikasi. Kita harus membangun dan memvalidasi setiap identitas yang ingin kita gunakan sebagai a From
, To
, Source
, Sender
, atau Return-Path
alamat sebelum kami dapat mengirim email menggunakan SES dalam mode kotak pasir. Dengan menggunakan Amazon SES untuk memverifikasi identitas, kami dapat membuktikan kepemilikan kami dan menghentikan penggunaan ilegal.
Untuk menghindari penipuan dan menjaga reputasi alamat IP, AWS SES menyertakan batas pengiriman email. Batasan ini menentukan jumlah maksimum email per detik dan batas email harian untuk setiap pengguna. Dengan menghubungi Pusat Dukungan AWS, kami dapat menetapkan kuota tersebut berdasarkan wilayah.
Mari kita verifikasi identitas. Masuk ke AWS Console dan cari “Layanan Email Amazon Simple"
Kemudian klik "Buat Identitas” untuk menambahkan email atau domain untuk verifikasi. Dalam kasus kami, kami akan menambahkan email untuk verifikasi.
Setelah identitas dibuat, kami dapat memverifikasi detailnya.
Identitas yang kami buat masuk ke “Verifikasi Tertunda" panggung. Pada tahap ini, pengguna perlu memeriksa email verifikasi dari AWS dan mengikuti petunjuk untuk memverifikasi email.
Selanjutnya, kita perlu mengambil "kunci akses"Dan"kunci rahasia” untuk otentikasi dan otorisasi aplikasi kami dengan SES. Untuk membuatnya, kita perlu membuat Grup Pengguna dan menambahkan Pengguna ke grup itu. Saat kami membuat Pengguna itu, AWS membuat kunci akses dan kunci rahasia. Jadi mari kita redirect ke “IAM” di AWS Console dan buat Grup Pengguna.
Kemudian kita perlu menambahkan “Akses Administrator” izin ke grup itu untuk SES.
Terakhir, kami akan menambahkan Pengguna ke grup di atas.
Selanjutnya, kita perlu memilih grup untuk izin.
Terakhir, salin kunci akses dan kunci rahasia yang ditampilkan di layar untuk penggunaan lebih lanjut.
Mengirim Email menggunakan Proyek Spring Cloud
Pengaturan Proyek
Mari jalankan proyek Spring Cloud dan jalankan melalui kasus penggunaan untuk diintegrasikan dengan SES. Cara termudah untuk memulai dengan proyek kerangka adalah melalui Inisialisasi Musim Semi:
Kami telah menambahkan Web Musim Semi untuk REST MVC, Penanda Gratis Apache untuk menghasilkan template email berbasis HTML, Pengirim Surat Jawa untuk mengirim email dan Lombok (perpustakaan pengurang boilerplate opsional). Selain itu, kami perlu menambahkan dependensi yang relevan untuk Spring Cloud AWS dan SES. Untuk Spring Cloud AWS, kami akan menambahkan BOM Spring Cloud AWS terpisah di pom.xml
file menggunakan ini blok:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.awspring.cloud</groupId>
<artifactId>spring-cloud-aws-dependencies</artifactId>
<version>2.3.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Terakhir, untuk menambahkan dukungan untuk SES, kita perlu menyertakan dependensi modul yang tersedia sebagai modul awal spring-cloud-starter-aws-ses
:
<dependency>
<groupId>io.awspring.cloud</groupId>
<artifactId>spring-cloud-starter-aws-ses</artifactId>
</dependency>
spring-cloud-starter-aws-ses
termasuk dependensi transitif untuk spring-cloud-starter-aws
, dan spring-cloud-aws-ses
. itu spring-cloud-aws-ses
modul untuk SES berisi dua kelas: SimpleEmailServiceMailSender
dan SimpleEmailServiceJavaMailSender
.
- Grafik
SimpleEmailServiceMailSender
class menggunakan Amazon Simple Email Service untuk mengirim email. Java Mail API bukan persyaratan untuk implementasi ini. Ini dapat digunakan untuk mengirim pesan email langsung tanpa lampiran. - Grafik
SimpleEmailServiceJavaMailSender
class memungkinkan pengiriman email yang berisi lampiran dan elemen pantomim lainnya.
Jadi ini mencakup semua persyaratan dasar kami!
Mengkonfigurasi Kacang
Seperti dibahas di atas, kita perlu mendefinisikan dua jenis kacang: SimpleEmailServiceMailSender
dan SimpleEmailServiceJavaMailSender
. Kita cukup meneruskan kunci akses dan kunci rahasia sebagai kredensial dan mengonfigurasi a MailSender
kacang yang akan kita gunakan untuk mengirim email:
@Configuration
public class SesConfig {
@Value("${cloud.aws.credentials.access-key}")
private String accessKey;
@Value("${cloud.aws.credentials.secret-key}")
private String secretKey;
@Value("${cloud.aws.region.static}")
private String region;
@Bean
public AmazonSimpleEmailService amazonSimpleEmailService() {
BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
return AmazonSimpleEmailServiceClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(region)
.build();
}
@Bean
public MailSender mailSender(AmazonSimpleEmailService amazonSimpleEmailService) {
return new SimpleEmailServiceMailSender(amazonSimpleEmailService);
}
@Bean
public JavaMailSender javaMailSender(AmazonSimpleEmailService amazonSimpleEmailService) {
return new SimpleEmailServiceJavaMailSender(amazonSimpleEmailService);
}
}
Untuk mengirim email dengan lampiran, kami perlu mengonfigurasi SimpleEmailServiceJavaMailSender
yang merupakan implementasi dari JavaMailSender
antarmuka dari abstraksi email Spring.
Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!
Kami juga akan menentukan properti untuk mengambil informasi dari application.yml
:
cloud:
aws:
region:
static: eu-central-1
auto: false
stack:
auto: false
credentials:
access-key: ********
secret-key: **************************
Mengirim Email Sederhana
Kami dapat mengirim email sederhana menggunakan SimpleEmailServiceMailSender
kacang yang kami konfigurasikan di atas. Mari kita tentukan lapisan layanan untuk menggunakan kacang ini:
@Service
public class EmailService {
@Autowired
private MailSender mailSender;
public void sendMessage(SimpleMailMessage simpleMailMessage) {
this.mailSender.send(simpleMailMessage);
}
}
Kami memanggil send()
metode dalam MailSender
kacang untuk mengirim email kami. Kita juga harus melewati SimpleMailMessage
yang akan berisi atribut seperti from
, to
, teks dan subjek email kami. Jadi, mari kita definisikan a Controller
kelas untuk memanggil layanan di atas menggunakan REST API:
@RestController
public class EmailController {
@Autowired
private EmailService emailService;
@PostMapping("/sendEmail")
public String sendMessage(@RequestBody EmailDetails emailDetails) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(emailDetails.getFromEmail());
simpleMailMessage.setTo(emailDetails.getToEmail());
simpleMailMessage.setSubject(emailDetails.getSubject());
simpleMailMessage.setText(emailDetails.getBody());
emailService.sendMessage(simpleMailMessage);
return "Email sent successfully";
}
}
Sekarang, jika kita menjalankan aplikasi dan menjalankan curl berikut ini akan mengirim email ke alamat email yang diverifikasi:
curl -i -X POST
-H "Content-Type:application/json"
-d
'{
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "test email",
"body": "Hi, This is a test email."
}'
'http://localhost:8080/sendEmail'
Selanjutnya, kita dapat login ke alamat email penerima dan memverifikasi apakah penerima telah menerima email tersebut.
Mengirim Email Sederhana dengan Lampiran
Kami akan menentukan lapisan layanan untuk meneruskan lampiran sebagai mime dan menyetel atribut email lainnya seperti from
, to
, teks dan subjek:
@Service
public class EmailService {
@Autowired
private JavaMailSender javaMailSender;
public void sendMessageWithAttachment(SimpleMailMessage simpleMailMessage) {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(
message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
StandardCharsets.UTF_8.name());
helper.addAttachment("logo.png", new ClassPathResource("logo.png"));
helper.setTo(Objects.requireNonNull(simpleMailMessage.getTo()));
helper.setText(Objects.requireNonNull(simpleMailMessage.getText()));
helper.setSubject(Objects.requireNonNull(simpleMailMessage.getSubject()));
helper.setFrom(Objects.requireNonNull(simpleMailMessage.getFrom()));
javaMailSender.send(message);
} catch (MessagingException e) {
System.err.println("Exception: " + e.getMessage());
}
}
}
Di sini kita gunakan MimeMessageHelper
untuk membuat email dengan lampiran. Terakhir, kami akan mendefinisikan Controller
lapisan untuk lulus SimpleMailMessage
atribut:
@RestController
public class EmailController {
@Autowired
private EmailService emailService;
@PostMapping("/sendEmailWithAttachment")
public String sendMessageWithAttachment(@RequestBody EmailDetails emailDetails) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(emailDetails.getFromEmail());
simpleMailMessage.setTo(emailDetails.getToEmail());
simpleMailMessage.setSubject(emailDetails.getSubject());
simpleMailMessage.setText(emailDetails.getBody());
emailService.sendMessageWithAttachment(simpleMailMessage);
return "Email sent successfully";
}
}
Sekarang, jika kita menjalankan aplikasi dan menjalankan curl berikut ini akan mengirim email ke alamat email yang diverifikasi:
curl -i -X POST
-H "Content-Type:application/json"
-d
'{
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "test email",
"body": "Hi, This is a test email with attachment."
}'
'http://localhost:8080/sendEmailWithAttachment'
Selanjutnya, kita dapat login ke alamat email penerima dan memverifikasi apakah penerima telah menerima email tersebut.
Mengirim Template Email dengan Lampiran
Kasus penggunaan sebelumnya yang telah kami lihat bagus untuk skenario pengembangan atau pengujian, tetapi dalam produksi, kami umumnya menggunakan template email dengan variabel yang akan diganti menggunakan respons API. Kami sebelumnya telah menambahkan ketergantungan untuk Penanda Gratis Apache. Kami akan menggunakannya untuk menentukan template dan memuatnya untuk diproses!
Untuk ini, pertama-tama mari kita definisikan template sederhana, beri nama sebagai email-template.ftl
dan letakkan di templates
folder di bawah resources
:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>StackAbuse Email</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top" bgcolor="#838383"
style="background-color: #838383;"><br> <br>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top" bgcolor="#d3be6c"
style="background-color: #d3be6c; font-family: Arial,
Helvetica, sans-serif; font-size: 13px; color: #000000;
padding: 0px 15px 10px 15px;">
<div style="font-size: 48px; color:blue;">
<b>StackAbuse</b>
</div>
<div style="font-size: 24px; color: #555100;">
<br> Sending Email using Spring Cloud with <b>FreeMarker</b> template !!! <br>
</div>
<div>
<br> Want to learn a new technology or become an in-demand full-stack developer?<br>
<br> We teach the skills you need to level up in your career.<br>
<br>"Sharing knowledge is the biggest learning" <br> <br>
<br> <br> <b>${Name}</b><br>${location}<br>
<br>
</div>
</td>
</tr>
</table> <br> <br></td>
</tr>
</table>
</body>
</html>
Selanjutnya, kita perlu mendefinisikan class konfigurasi untuk memuat template dari path dan menambahkannya sebagai bean. Untuk ini, kami akan mendefinisikan FreeMarkerConfigurationFactoryBean
:
@Configuration
public class FreemarkerConfig {
@Primary
@Bean
public FreeMarkerConfigurationFactoryBean factoryBean() {
FreeMarkerConfigurationFactoryBean bean = new FreeMarkerConfigurationFactoryBean();
bean.setTemplateLoaderPath("classpath:/templates");
return bean;
}
}
Selanjutnya, kita akan menentukan lapisan layanan kita untuk memuat template ini dan membuat pesan terakhir untuk dikirim ke SES:
@Service
public class EmailService {
@Autowired
private JavaMailSender javaMailSender;
@Autowired
private Configuration config;
public void sendTemplateMessageWithAttachment(SimpleMailMessage simpleMailMessage) {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(
message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
StandardCharsets.UTF_8.name());
Template t = config.getTemplate("email-template.ftl");
Map model = new HashMap();
model.put("Name", "StackAbuse Admin");
model.put("location", "Bangalore, India");
String html = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);
helper.addAttachment("logo.png", new ClassPathResource("logo.png"));
helper.setTo(Objects.requireNonNull(simpleMailMessage.getTo()));
helper.setText(html, true);
helper.setSubject(Objects.requireNonNull(simpleMailMessage.getSubject()));
helper.setFrom(Objects.requireNonNull(simpleMailMessage.getFrom()));
javaMailSender.send(message);
} catch (MessagingException | IOException | TemplateException e) {
System.err.println("Exception: " + e.getMessage());
}
}
Terakhir, kita akan mendefinisikan a Controller
lapisan untuk meneruskan atribut email dinamis:
@RestController
public class EmailController {
@Autowired
private EmailService emailService;
@PostMapping("/sendTemplateEmailWithAttachment")
public String sendTemplateMessageWithAttachment(@RequestBody EmailDetails emailDetails) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(emailDetails.getFromEmail());
simpleMailMessage.setTo(emailDetails.getToEmail());
simpleMailMessage.setSubject(emailDetails.getSubject());
simpleMailMessage.setText(emailDetails.getBody());
emailService.sendTemplateMessageWithAttachment(simpleMailMessage);
return "Email sent successfully";
}
}
Sekarang, jika kita menjalankan aplikasi dan menjalankan curl berikut ini akan mengirim email ke alamat email yang diverifikasi:
curl -i -X POST
-H "Content-Type:application/json"
-d
'{
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "test email",
"body": "Hi, This is a test template email with attachment."
}'
'http://localhost:8080/sendTemplateEmailWithAttachment'
Selanjutnya, kita dapat login ke alamat email penerima dan memverifikasi apakah penerima telah menerima email:
Mengirim Email yang Dipersonalisasi menggunakan Template di AWS SES
Dalam kasus penggunaan sebelumnya, kami menggunakan template statis untuk mengirim email. Bagaimana kita dapat mengaktifkan template untuk dirancang secara dinamis untuk tujuan yang berbeda dan jenis penerima yang berbeda? AWS SES memungkinkan kami membuat template email untuk mengirim email yang dipersonalisasi ke satu atau beberapa tujuan dalam satu operasi.
Kami dapat membuat hingga 10,000 templat email per akun Amazon SES. Setiap templat dapat berukuran hingga 500 KB, termasuk bagian teks dan HTML. Kami dapat mengirim hingga 50 tujuan dalam setiap panggilan.
Jadi mari kita segera membuat template email. Pertama, kita dapat mendefinisikan file JSON menggunakan template berikut:
{
"Template": {
"TemplateName": "MyTemplate",
"SubjectPart": "Greetings from {{name}}!",
"HtmlPart": "StackAbuse Email
StackAbuse
Sending Email using Spring Cloud with AWS SES Email template !!!
Want to learn a new technology or become an in-demand full-stack developer?
We teach the skills you need to level up in your career.
"Sharing knowledge is the biggest learning"
{{name}}
{{location}}
",
"TextPart": "Dear {{name}},rnHere is your StackAbuse Email."
}
}
Template ini berisi atribut berikut:
- Nama Template: Ini berisi nama template.
- Bagian Subjek: Ini menyimpan baris subjek email. Tag pengganti mungkin ada pada aset ini. Tag ini diformat sebagai berikut:
{{tagname}}
. Anda dapat memasukkan nilai untuk{{tagname}}
untuk setiap tujuan saat mengirim email. - HtmlBagian: Ini berisi badan HTML email dan juga dapat berisi tag pengganti.
- Bagian Teks: Ini mewakili badan teks email. Versi email ini dikirim ke penerima yang klien emailnya tidak melihat email HTML. Tag pengganti mungkin ada pada aset ini.
Kita dapat menyimpan file ini sebagai mytemplate.json
. Akhirnya kita dapat menggunakan perintah AWS CLI untuk membuat template sebagai berikut:
$ aws ses create-template --cli-input-json file://mytemplate.json
Selanjutnya, mari kita tentukan lapisan layanan untuk menentukan atribut dan mengirim email dengan template:
@Service
public class EmailService {
@Autowired
private AmazonSimpleEmailService simpleEmailService;
public void sendTemplatedMessage(SimpleMailMessage simpleMailMessage) {
Destination destination = new Destination();
List toAddresses = new ArrayList();
String[] emails = simpleMailMessage.getTo();
Collections.addAll(toAddresses, Objects.requireNonNull(emails));
destination.setToAddresses(toAddresses);
SendTemplatedEmailRequest templatedEmailRequest = new SendTemplatedEmailRequest();
templatedEmailRequest.withDestination(destination);
templatedEmailRequest.withTemplate("MyTemplate");
templatedEmailRequest.withTemplateData("{ "name":"StackAbuse Admin", "location": "Bangalore, India"}");
templatedEmailRequest.withSource(simpleMailMessage.getFrom());
simpleEmailService.sendTemplatedEmail(templatedEmailRequest);
}
}
Kita bisa menambahkan banyak Destination
alamat untuk mengirim email massal ke beberapa penerima. Kami menggunakan sendTemplatedEmail()
metode dari AmazonSimpleEmailService
antarmuka untuk mengirim email templated ini. Kita juga perlu memberikan tag pengganti untuk diganti dalam teks HTML template kita yang kita buat tadi.
Terakhir, kita akan mendefinisikan a Controller
lapisan untuk menentukan REST API untuk meneruskan atribut:
@RestController
public class EmailController {
@Autowired
private EmailService emailService;
@PostMapping("/sendAWSTemplatedEmail")
public String sendTemplatedMessage(@RequestBody EmailDetails emailDetails) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(emailDetails.getFromEmail());
simpleMailMessage.setTo(emailDetails.getToEmail());
simpleMailMessage.setSubject(emailDetails.getSubject());
simpleMailMessage.setText(emailDetails.getBody());
emailService.sendTemplatedMessage(simpleMailMessage);
return "Email sent successfully";
}
}
Selanjutnya, ketika kami menjalankan aplikasi, kami dapat menjalankan yang berikut ini curl
untuk mengirim email template:
curl -i -X POST
-H "Content-Type:application/json"
-d
'{
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "Greetings from StackAbuse Admin",
"body": "Hi, This is a AWS templated email."
}'
'http://localhost:8080/sendAWSTemplatedEmail'
Sekarang penerima akhirnya bisa melihat email template:
Minta Akses Produksi
Terakhir, untuk mengirim email ke penerima mana pun, terlepas dari apakah alamat atau domain penerima divalidasi, pada akhirnya kita harus mengeluarkan akun kita dari kotak pasir. Semua identitas kita, termasuk From
, Source
, Sender
, dan Return-Path
alamat, masih harus diverifikasi. Kami dapat mengajukan permintaan akses Produksi dari “Dasbor Akun” sebagai berikut:
Kami dapat mengirimkan permintaan untuk mengisi semua detail di atas dari AWS Console. Hal yang sama juga dapat dikirimkan menggunakan AWS CLI. Ini akan sangat membantu saat kami perlu meminta akses untuk sejumlah besar identitas dan ingin mengotomatiskan prosesnya.
Kesimpulan
Gagasan utama Amazon Simple Email Service (SES) dan pustaka yang ditawarkan oleh Spring Cloud AWS untuk berinteraksi dengannya tercakup dalam artikel ini. Selain itu, kami membuat aplikasi Spring Boot dengan REST API yang dapat mengirim email melalui modul Spring Cloud AWS SES.
Anda sekarang harus memiliki pemahaman yang kuat tentang apa itu Amazon Simple Email Service (SES) dan bagaimana menggunakannya untuk mengirim email.