Cách đơn giản nhất để gửi và nhận email trong Spring Boot là sử dụng spring-boot-starter-mail.
spring-boot-starter-mail thực chất sử dụng JavaMail (javax.mail). Nếu bạn muốn tìm hiểu thêm về JavaMail, bạn có thể tham khảo: Hướng dẫn sử dụng JavaMail
API
Spring Framework cung cấp một cách tiếp cận đơn giản để gửi email bằng cách sử dụng giao diện JavaMailSender, đây là API chính để gửi email.
Các API được cung cấp bởi giao diện JavaMailSender như sau:
Cấu hình
Spring Boot cung cấp cấu hình tự động và mô-đun khởi động cho JavaMailSender.
Nếu spring.mail.host và các thư viện liên quan (được xác định bởi spring-boot-starter-mail) có sẵn, Spring Boot sẽ tạo ra một JavaMailSender mặc định (nếu chưa tồn tại). Bạn có thể tùy chỉnh người gửi bằng cách sử dụng các cấu hình trong không gian tên spring.mail.
Đặc biệt là, một số giá trị timeout mặc định là vô hạn, bạn có thể thay đổi chúng để tránh việc máy chủ email không phản hồi và làm chặn luồng, như ví dụ sau:
Bạn cũng có thể sử dụng cấu hình phiên bản hiện có trong JNDI cho JavaMailSender:
spring.mail.jndi-name=mail/Session
Dưới đây là các cấu hình liên quan đến Mail trong Spring Boot:
Để biết thêm thông tin chi tiết, vui lòng xem MailProperties.
Triển khai
Thêm các phụ thuộc
Cấu hình thuộc tính email
Thêm tệp cấu hình application-163.properties vào thư mục src/main/resources, nội dung như sau:
Lưu ý: Thay thế spring.mail.username và spring.mail.password bằng tên người dùng và mật khẩu hợp lệ.
Tệp cấu hình application-163.properties đại diện cho cấu hình khi sử dụng hộp thư 163. Để kích hoạt nó, cần sử dụng spring.profiles.active = 163.
Thêm tệp cấu hình application.properties vào thư mục src/main/resources, nội dung như sau:
Java Code
Trước tiên, chúng ta cần đọc một số thuộc tính cấu hình, phương thức như sau:
Tiếp theo, định nghĩa một lớp thực thể tham số email (sử dụng lombok để rút gọn getter, setter):