<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>SES Archives - Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/tag/ses/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/tag/ses/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Wed, 11 Oct 2023 01:47:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>SES Archives - Tomoshare</title>
	<link>https://blog.tomosia.com.vn/tag/ses/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Gửi email với Amazon Simple Email Service và Spring boot</title>
		<link>https://blog.tomosia.com.vn/gui-email-voi-amazon-simple-email-service-va-spring-boot/</link>
					<comments>https://blog.tomosia.com.vn/gui-email-voi-amazon-simple-email-service-va-spring-boot/#comments</comments>
		
		<dc:creator><![CDATA[admin_tomosia]]></dc:creator>
		<pubDate>Wed, 11 Oct 2023 01:47:28 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[SES]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=427</guid>

					<description><![CDATA[<p>Amazon Simple Email Service (Amazon SES) là một dịch vụ có quy mô cực kỳ linh hoạt và&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/gui-email-voi-amazon-simple-email-service-va-spring-boot/">Gửi email với Amazon Simple Email Service và Spring boot</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>Amazon Simple Email Service (Amazon SES) là một dịch vụ có quy mô cực kỳ linh hoạt và tiết kiệm chi phí dùng để gửi và nhận email. Amazon SES loại bỏ sự phức tạp cũng như chi phí của việc xây dựng một giải pháp email nội bộ hoặc việc cấp phép, cài đặt và vận hành một giải pháp email của bên thứ ba.</p>



<h3 class="wp-block-heading has-large-font-size" id="_1-gioi-thieu-ve-amazon-ses-1"><span id="1-gioi-thieu-ve-amazon-ses">1. Giới thiệu về Amazon SES.</span></h3>



<p>Amazon Simple Email Service (Amazon SES) là dịch vụ gửi email trên nền tảng đám mây được thiết kế để giúp các chuyên gia marketing kỹ thuật số và nhà phát triển ứng dụng gửi email marketing, thông báo và giao dịch. Đây là dịch vụ tin cậy, tiết kiệm chi phí dành cho các doanh nghiệp thuộc đủ mọi quy mô sử dụng email để giữ liên lạc với khách hàng của mình.</p>



<p>Bạn có thể sử dụng giao diện SMTP hoặc một trong các SDK của AWS để tích hợp Amazon SES trực tiếp vào các ứng dụng hiện có của bạn. Bạn cũng có thể tích hợp tính năng gửi email của Amazon SES vào trang web đang sử dụng.</p>



<p class="has-large-font-size">2. Configuration</p>



<p class="has-medium-font-size"><strong>Đầu tiên, chúng ta sẽ xác thực email. </strong></p>



<p>Ở màn hình trang chủ của Amazon SES, các bạn nhấn vào nút&nbsp;<strong>Create Identity</strong>&nbsp;để bắt đầu xác thực nhé. </p>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-1024x270.png" alt="" class="wp-image-434" style="width:794px;height:209px" width="794" height="209" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-1024x270.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-300x79.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-768x202.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-1536x405.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-2048x540.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-380x100.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-800x211.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20-1160x306.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-20.png 2876w" sizes="(max-width: 794px) 100vw, 794px" /></figure>



<p>Tiếp theo chúng ta chọn loại xác thực, có 2 loại là&nbsp;<strong>Email Address</strong>&nbsp;(xác thực một địa chỉ email) và&nbsp;<strong>Domain</strong>&nbsp;(xác thực một tên miền). Nếu các bạn có tên miền rồi và muốn gửi email có dạng&nbsp;<code>no-reply@example.com</code>&nbsp;thì bạn chọn&nbsp;<strong>Domain</strong>. Còn nếu bạn chưa có tên miền và muốn dùng địa chỉ email của gmail như&nbsp;<code>hoangnhat1020023@gmail.com</code>&nbsp;thì chọn&nbsp;<strong>Email Address</strong>&nbsp;nhé.<br></p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-1024x733.png" alt="" class="wp-image-435" style="width:705px;height:505px" width="705" height="505" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-1024x733.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-300x215.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-768x550.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-1536x1100.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-380x272.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-800x573.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21-1160x831.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-21.png 1880w" sizes="(max-width: 705px) 100vw, 705px" /></figure>



<p>Tiếp theo thì AWS sẽ gửi một email đến địa chỉ email bạn vừa nhập, vào email đó và nhấn vào link xác thực để được verify nhé.</p>



<p class="has-medium-font-size"><strong>Tiếp theo, chúng ta cấu hình IAM để cấp quyền truy cập vào AWS SES<br></strong></p>



<p>IAM là viết tắt của&nbsp;<strong>Identity and Access Management</strong>. Đây là một dịch vụ của AWS giúp chúng ta quản lý các tài khoản, quyền truy cập của các tài khoản đó vào các dịch vụ khác của AWS.</p>



<p>Để cấp quyền các bạn làm như sau:</p>



<ul class="wp-block-list">
<li>Vào ô tìm kiếm của AWS gõ từ khóa&nbsp;<strong>IAM</strong>&nbsp;để tìm dịch vụ IAM</li>



<li>Chọn&nbsp;<strong>Access Management</strong>&nbsp;bên sidebar bên phải -&gt;&nbsp;<strong>Users</strong>&nbsp;-&gt;&nbsp;<strong>Add users</strong></li>



<li>Điền tên cho user và nhấn&nbsp;<strong>Next</strong>&nbsp;để qua step 2</li>
</ul>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-1024x401.png" alt="" class="wp-image-436" style="width:761px;height:297px" width="761" height="297" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-1024x401.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-300x117.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-768x300.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-1536x601.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-2048x801.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-380x149.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-800x313.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22-1160x454.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-22.png 2878w" sizes="(max-width: 761px) 100vw, 761px" /></figure>



<p>Chọn&nbsp;<strong>Attach policies directly</strong>&nbsp;-&gt; tìm và chọn&nbsp;<strong>AmazonSESFullAccess</strong>&nbsp;-&gt; nhấn&nbsp;<strong>Next</strong>&nbsp;để qua step 3</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-1024x481.png" alt="" class="wp-image-437" style="width:743px;height:349px" width="743" height="349" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-1024x481.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-300x141.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-768x361.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-1536x721.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-2048x961.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-380x178.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-800x376.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23-1160x545.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-23.png 2846w" sizes="auto, (max-width: 743px) 100vw, 743px" /></figure>



<ul class="wp-block-list">
<li>Review lại và nhấn&nbsp;<strong>Create user</strong>&nbsp;để tạo user</li>



<li>Tiếp tục click vào user vừa tạo, chọn tab là&nbsp;<strong>Security credentials</strong>, scroll xuống dưới phần&nbsp;<strong>Access keys</strong>, chọn&nbsp;<strong>Create access key</strong>&nbsp;để tạo access key</li>
</ul>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-1024x565.png" alt="" class="wp-image-438" style="width:731px;height:404px" width="731" height="404" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-1024x565.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-300x166.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-768x424.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-1536x848.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-2048x1131.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-380x210.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-800x442.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24-1160x640.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-24.png 2322w" sizes="auto, (max-width: 731px) 100vw, 731px" /></figure>



<p>                                                          <em>Chọn Security credentials</em><br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="406" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-1024x406.png" alt="" class="wp-image-439" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-1024x406.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-300x119.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-768x305.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-1536x610.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-2048x813.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-380x151.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-800x317.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25-1160x460.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-25.png 2288w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>                                                       <em>Click vào Create access key</em>  </p>



<ul class="wp-block-list">
<li>Ở Step 1 thì anh em chọn option là&nbsp;<strong>Application running outside AWS</strong>&nbsp;và nhấn&nbsp;<strong>Next</strong></li>
</ul>



<p><a href="https://duthanhduoc.com/images/2023/huong-dan-gui-email-voi-aws-ses-va-nodejs/best-practices.png" target="_blank" rel="noreferrer noopener"></a></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="583" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-1024x583.png" alt="" class="wp-image-440" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-1024x583.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-300x171.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-768x437.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-1536x875.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-2048x1166.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-380x216.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-800x456.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26-1160x661.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-26.png 2216w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<ul class="wp-block-list">
<li>Ở Step 2 thì anh em có thể điền mô tả cho cái key này hoặc không, optional mà. Nhấn&nbsp;<strong>Next</strong></li>



<li>Ở Step 3 lưu ý là anh em nên download cái file CSV chứa access key và secret key này về máy để dùng sau này nhé. Nhấn&nbsp;<strong>Download .csv file</strong>&nbsp;và&nbsp;<strong>Done</strong>&nbsp;để hoàn thành.</li>
</ul>



<p></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-1024x497.png" alt="" class="wp-image-441" style="width:723px;height:351px" width="723" height="351" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-1024x497.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-300x146.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-768x373.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-1536x746.png 1536w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-2048x995.png 2048w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-380x185.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-800x388.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27-1160x563.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/image-27.png 2710w" sizes="auto, (max-width: 723px) 100vw, 723px" /></figure>



<p></p>



<p>Key của chúng ta sẽ gồm 2 phần là&nbsp;<strong>Access key</strong>&nbsp;và&nbsp;<strong>Secret access key</strong>. </p>



<p></p>



<p class="has-large-font-size">3. Gửi email với Amazon SES và Spring Boot<br></p>



<p class="has-medium-font-size"><strong>Bước 1: Thêm Dependency vào Maven POM</strong><br></p>



<p>Đầu tiên, chúng ta cần thêm các dependency cần thiết vào tệp <code>pom.xml</code> của dự án Spring Boot của bạn. Điều này bao gồm dependency cho Spring Boot Mail Starter và AWS SDK for SES.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-mail&lt;/artifactId&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
    &lt;groupId&gt;com.amazonaws&lt;/groupId&gt;
    &lt;artifactId&gt;aws-java-sdk-ses&lt;/artifactId&gt;
    &lt;version&gt;1.11.1003&lt;/version&gt; &lt;!-- Phiên bản cụ thể có thể thay đổi --&gt;
&lt;/dependency&gt;
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">&lt;</span><span style="color: #FF79C6">dependency</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">    &lt;</span><span style="color: #8BE9FD; font-style: italic">groupId</span><span style="color: #F8F8F2">&gt;org.springframework.boot&lt;/</span><span style="color: #8BE9FD; font-style: italic">groupId</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">    &lt;</span><span style="color: #8BE9FD; font-style: italic">artifactId</span><span style="color: #F8F8F2">&gt;spring-boot-starter-mail&lt;/</span><span style="color: #8BE9FD; font-style: italic">artifactId</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;/</span><span style="color: #FF79C6">dependency</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;</span><span style="color: #FF79C6">dependency</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">    &lt;</span><span style="color: #8BE9FD; font-style: italic">groupId</span><span style="color: #F8F8F2">&gt;com.amazonaws&lt;/</span><span style="color: #8BE9FD; font-style: italic">groupId</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">    &lt;</span><span style="color: #8BE9FD; font-style: italic">artifactId</span><span style="color: #F8F8F2">&gt;aws-java-sdk-ses&lt;/</span><span style="color: #8BE9FD; font-style: italic">artifactId</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">    &lt;</span><span style="color: #FF79C6">version</span><span style="color: #F8F8F2">&gt;1.11.1003&lt;/</span><span style="color: #FF79C6">version</span><span style="color: #F8F8F2">&gt; &lt;!-- Phiên bản cụ thể có thể thay đổi --&gt;</span></span>
<span class="line"><span style="color: #F8F8F2">&lt;/</span><span style="color: #FF79C6">dependency</span><span style="color: #F8F8F2">&gt;</span></span>
<span class="line"></span></code></pre></div>



<p class="has-medium-font-size"><strong>Bước 2: Cấu hình AWS Credentials</strong></p>



<p></p>



<p>Tiếp theo, bạn cần cấu hình AWS Credentials (Access Key và Secret Key) và cài đặt các thuộc tính email trong tệp <code>application.properties</code> hoặc <code>application.yml</code>.<br></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="spring.mail.host=smtp.example.com
spring.mail.port=587
spring.mail.username=your-email@example.com
spring.mail.password=your-email-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

# AWS SES Configuration
aws.accessKey=YOUR_AWS_ACCESS_KEY
aws.secretKey=YOUR_AWS_SECRET_KEY
aws.region=us-east-1
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">spring.mail.host</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">smtp.example.com</span></span>
<span class="line"><span style="color: #F8F8F2">spring.mail.port</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">587</span></span>
<span class="line"><span style="color: #F8F8F2">spring.mail.username</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">your</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">email@example.com</span></span>
<span class="line"><span style="color: #F8F8F2">spring.mail.password</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">your</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">email</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">password</span></span>
<span class="line"><span style="color: #F8F8F2">spring.mail.properties.mail.smtp.auth</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">true</span></span>
<span class="line"><span style="color: #F8F8F2">spring.mail.properties.mail.smtp.starttls.enable</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">true</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2"># AWS SES Configuration</span></span>
<span class="line"><span style="color: #F8F8F2">aws.accessKey</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">YOUR_AWS_ACCESS_KEY</span></span>
<span class="line"><span style="color: #F8F8F2">aws.secretKey</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">YOUR_AWS_SECRET_KEY</span></span>
<span class="line"><span style="color: #F8F8F2">aws.region</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">us</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">east</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">1</span></span>
<span class="line"></span></code></pre></div>



<p class="has-medium-font-size"><strong>Bước 3: Tạo Bean cho Amazon SES</strong></p>



<p>Trong ứng dụng Spring Boot của bạn, bạn cần tạo một bean để sử dụng Amazon SES. Bean này sẽ được sử dụng để gửi email qua SES.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AwsConfig {

    @Value(&quot;${aws.accessKey}&quot;)
    private String awsAccessKey;

    @Value(&quot;${aws.secretKey}&quot;)
    private String awsSecretKey;

    @Bean
    public AmazonSimpleEmailService amazonSimpleEmailService() {
        BasicAWSCredentials awsCredentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);
        return AmazonSimpleEmailServiceClient.builder()
                .withCredentials(new AWSStaticCredentialsProvider(awsCredentials))
                .build();
    }
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> com.amazonaws.auth.BasicAWSCredentials;</span></span>
<span class="line"><span style="color: #F8F8F2">import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;</span></span>
<span class="line"><span style="color: #F8F8F2">import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient;</span></span>
<span class="line"><span style="color: #F8F8F2">import org.springframework.beans.factory.annotation.Value;</span></span>
<span class="line"><span style="color: #F8F8F2">import org.springframework.context.annotation.Bean;</span></span>
<span class="line"><span style="color: #F8F8F2">import org.springframework.context.annotation.Configuration;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">@Configuration</span></span>
<span class="line"><span style="color: #F8F8F2">public class AwsConfig {</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    @Value(&quot;${aws.accessKey}</span><span style="color: #E9F284">&quot;</span><span style="color: #FF5555; font-style: italic; text-decoration: underline">)</span></span>
<span class="line"><span style="color: #F8F8F2">    private String awsAccessKey;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    @Value(</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">${aws.secretKey}</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">    private String awsSecretKey;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    @Bean</span></span>
<span class="line"><span style="color: #F8F8F2">    public AmazonSimpleEmailService amazonSimpleEmailService() {</span></span>
<span class="line"><span style="color: #F8F8F2">        BasicAWSCredentials awsCredentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);</span></span>
<span class="line"><span style="color: #F8F8F2">        return AmazonSimpleEmailServiceClient.builder()</span></span>
<span class="line"><span style="color: #F8F8F2">                .withCredentials(new AWSStaticCredentialsProvider(awsCredentials))</span></span>
<span class="line"><span style="color: #F8F8F2">                .build();</span></span>
<span class="line"><span style="color: #F8F8F2">    }</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p class="has-medium-font-size"><strong>Bước 4: Gửi Email từ Ứng dụng của bạn</strong></p>



<p>Giờ đây, bạn có thể sử dụng <code>JavaMailSender</code> để gửi email qua SES trong ứng dụng Spring Boot của bạn. Dưới đây là ví dụ về cách gửi email từ ứng dụng của bạn:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

@Service
public class EmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    public void sendEmail(String from ,String to, String subject, String body) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setFrom(from);
        message.setSubject(subject);
        message.setText(body);
        javaMailSender.send(message);
    }
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> org.springframework.beans.factory.annotation.Autowired;</span></span>
<span class="line"><span style="color: #F8F8F2">import org.springframework.mail.SimpleMailMessage;</span></span>
<span class="line"><span style="color: #F8F8F2">import org.springframework.mail.javamail.JavaMailSender;</span></span>
<span class="line"><span style="color: #F8F8F2">import org.springframework.stereotype.Service;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">@Service</span></span>
<span class="line"><span style="color: #F8F8F2">public class EmailService {</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    @Autowired</span></span>
<span class="line"><span style="color: #F8F8F2">    private JavaMailSender javaMailSender;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    public void sendEmail(String from ,String to, String subject, String body) {</span></span>
<span class="line"><span style="color: #F8F8F2">        SimpleMailMessage message = new SimpleMailMessage();</span></span>
<span class="line"><span style="color: #F8F8F2">        message.setTo(to);</span></span>
<span class="line"><span style="color: #F8F8F2">        message.setFrom(from);</span></span>
<span class="line"><span style="color: #F8F8F2">        message.setSubject(subject);</span></span>
<span class="line"><span style="color: #F8F8F2">        message.setText(body);</span></span>
<span class="line"><span style="color: #F8F8F2">        javaMailSender.send(message);</span></span>
<span class="line"><span style="color: #F8F8F2">    }</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Sử dụng <code>EmailService</code> để gửi email:<br></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="@Service
public class MyService {

    @Autowired
    private EmailService emailService;

    public void sendEmail() {
        String to = &quot;recipient@example.com&quot;;
        String from = &quot;hoangnhat102003@gmail.com&quot;;
        String subject = &quot;Test Email&quot;;
        String body = &quot;This is a test email sent via AWS SES and Spring Boot.&quot;;
        emailService.sendEmail(from ,to, subject, body);
    }
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">@</span><span style="color: #50FA7B; font-style: italic">Service</span></span>
<span class="line"><span style="color: #F8F8F2">public </span><span style="color: #FF79C6">class</span><span style="color: #F8F8F2"> </span><span style="color: #8BE9FD">MyService</span><span style="color: #F8F8F2"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    @</span><span style="color: #50FA7B; font-style: italic">Autowired</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">private</span><span style="color: #F8F8F2"> EmailService emailService;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">public</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">void</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">sendEmail</span><span style="color: #F8F8F2">() {</span></span>
<span class="line"><span style="color: #F8F8F2">        String to </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">recipient@example.com</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">;</span></span>
<span class="line"><span style="color: #F8F8F2">        String from </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">hoangnhat102003@gmail.com</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">;</span></span>
<span class="line"><span style="color: #F8F8F2">        String subject </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">Test Email</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">;</span></span>
<span class="line"><span style="color: #F8F8F2">        String body </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">This is a test email sent via AWS SES and Spring Boot.</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">;</span></span>
<span class="line"><span style="color: #F8F8F2">        emailService.</span><span style="color: #50FA7B">sendEmail</span><span style="color: #F8F8F2">(from ,to, subject, body);</span></span>
<span class="line"><span style="color: #F8F8F2">    }</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p class="has-large-font-size">4. Tổng kết</p>



<p></p>



<p>Trên đây là hướng dẫn cách sử dụng AWS SES để gửi email, tất nhiên là nó không thể nào nói hết được tất cả những thứ liên quan đến AWS SES, nhưng mình đã cố gắng đơn giản hết sức cho mọi người có thể đọc xong là làm được ngay luôn, còn mấy thứ khác thì có thời gian chúng ta sẽ học sau. Đúng không nào 😁</p>



<p></p>



<p></p>



<p></p>
<p>The post <a href="https://blog.tomosia.com.vn/gui-email-voi-amazon-simple-email-service-va-spring-boot/">Gửi email với Amazon Simple Email Service và Spring boot</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/gui-email-voi-amazon-simple-email-service-va-spring-boot/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
