Để hiểu rõ hơn về Spring:

  1. Spring phần 1: Spring là gì ? Giới thiệu Spring Framework trong Java
  2. Spring phần 2: Cài đặt Spring Tool Suite Cho Eclipse

Và cùng đến với Series Spring Core:

  1. Spring Core – Phần 1: Spring IoC , Inversion of Control trong Spring
  2. Spring Core – Phần 2: Spring Bean, Các scope trong Spring, Spring Bean Scope
  3. Spring Core – Phần 3: Spring Dependency Injection, DI trong Spring, so sánh CI – SI
  4. Spring Core – Phần 4: Spring Dependency Injection với Object, Collections, Map
  5. Spring Core – Phần 5: Spring AOP là gì? code ví dụ với Spring AOP
  6. Spring Core – Phần 6: AspectJ là gì? Spring AOP + AspectJ ví dụ với AspectJ
  7. Spring Core: Phần 7 – Spring PropertyPlaceholderConfigurer, lấy dữ liệu từ file properties
  8. Spring Core – Phần 8: Autowiring trong Spring, annotation @Autowired trong Spring, các kiểu autowiring
  9. Spring Core – Phần 9: Spring Auto Component Scanning, Các annotation hay dùng trong Spring
  10. Code ví dụ Spring đọc file từ resource folder (resources)
  11. Code ví dụ gửi email – gmail với Spring

Code ví dụ gửi email – gmail với Spring

(Xem lại: gửi gmail bằng Java)

Trong ví dụ này mình sẽ thực hiện gửi gmail bằng Spring.

Lưu ý, để gửi được gmail trong Java bạn phải cài đặt tài khoản gmail của bạn cho phép truy cập từ các ứng dụng kém bảo mật để có thể gửi gmail bằng Java.

(Bình thường đăng nhập gmail sẽ có nhiều bước như sử dụng code, số điện thoại…)

Tạo maven project

Code ví dụ gửi email - gmail với Spring

Thư viện sử dụng:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>stackjava.com</groupId>
<artifactId>SpringSendEmail</artifactId>
<version>0.0.1-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
</project>

File Spring Config:

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<!-- Using socket -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="username" value="teststackjava@gmail.com" />
<property name="password" value="stackjava123" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.socketFactory.port">465</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.smtp.port">465</prop>
</props>
</property>
</bean>

<!-- Using SMTP -->
<bean id="mailSender2" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="username" value="teststackjava@gmail.com" />
<property name="password" value="stackjava123" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.port">587</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
</beans>

org.springframework.mail.javamail.JavaMailSenderImpl sẽ thực hiện thừa kế MailSender  để thực hiện gửi email.

Có 2 phương thức gửi gmail là qua socket và smtp (bạn có thể thử với 2 bean)

Mình đã tạo sẵn 1 tài khoản gmail là teststackjava@gmail.com để test, các bạn có thể dùng luôn (nhưng mà đừng đổi pass nha) hoặc tự nhập tài khoản và password gmail của mình vào.

Demo:

MainApp.java

package stackjava.com.springsendemail.demo;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

public class MainApp {
public static void main(final String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
MailSender mailSender = (MailSender) context.getBean("mailSender2");
System.out.println("Sending text...");
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("teststackjava@gmail.com");
message.setTo("stackjava.com@gmail.com");
message.setSubject("Subject");
message.setText("test send gmail using spring");
// sending message
mailSender.send(message);
System.out.println("Sending text done!");
context.close();
}
}

Kết quả:

Sending text...
Sending text done!
Code ví dụ gửi email - gmail với Spring

Các bạn có thể tham khảo bài gửi gmail bằng Java để thực hiện gửi mail với file đính kèm, định dạng html… với spring.

Code ví dụ gửi email – gmail với Spring

Okay, Done!

Download code ví dụ trên tại đây


Loạt bài chủ đề Java trên trang stackjava.com bản quyền thuộc thầy Trần Hữu Cương. Bài viết đăng trên blog Techmaster được sự đồng ý của tác giả.

Thầy Trần Hữu Cương đã và đang tham gia giảng dạy tại Techmater khoá Lộ trình Java Spring Boot Full Stack

Link gốc bài viết tại đây.