SpringBoot 기초 튜 토리 얼 통합 메 일 서비스
8304 단어 springboot집성우편물
Spring Email 추상 적 인 핵심 은 MailSender 인터페이스 로 MailSender 의 실현 은 Email 을 메 일 서버 에 보 내 고 메 일 서버 에서 메 일 을 보 내 는 기능 을 실현 할 수 있다.
Spring 은 자체 적 으로 MailSender 의 자바 MailSenderImpl 을 가 져 왔 습 니 다.자바 메 일 API 를 사용 하여 이메일 을 보 냅 니 다.Spring 이나 SpringBoot 는 이메일 을 보 내기 전에 자바 MailSenderImpl 을 Spring 응용 컨 텍스트 의 bean 으로 설치 해 야 합 니 다.
배치
1、pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、application.yml
spring:
mail:
host: smtp.163.com
port: 25
username: 159****[email protected]
password: ***********
host 속성 은 기본적으로 자바 메 일 세 션 의 호스트 입 니 다.port 포트 기본 감청 표준 SMTP 포트 25;메 일 서버 에 인증 이 필요 하 다 면 userrname 과 password 를 설정 해 야 합 니 다.여기 서 제 가 사용 하 는 것 은 163 메 일 서버 입 니 다.163 메 일 에서 클 라 이언 트 인증 비밀 번 호 를 켜 야 합 니 다.그렇지 않 으 면 550 인증 오 류 를 보고 할 것 입 니 다.
3、EmailConfig.java
여기 서 우 리 는 자바 메 일 SenderImpl 을 Spring 응용 컨 텍스트 의 Bean 으로 조립 합 니 다.또한 주의해 야 할 것 은@ConfigurationProperties 주 해 를 사 용 했 습 니 다.이 주 해 는 setter 방법 이 있 고 시작 클래스 에서@EnableConfigurationProperties 주 해 를 사용 하여 효력 을 발생 시 켜 야 합 니 다.
@Configuration
@ConfigurationProperties(prefix = "spring.mail")
public class EmailConfig {
private String host;
private Integer port;
private String username;
private String password;
@Bean
public MailSender javaMailSender() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(host);
javaMailSender.setPort(port);
javaMailSender.setUsername(username);
javaMailSender.setPassword(password);
return javaMailSender;
}
public void setHost(String host) {
this.host = host;
}
public void setPort(Integer port) {
this.port = port;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
}
발송자바 메 일 Sender 가 있 으 면 메 일 을 보 내 는 것 은 더 이상 간단 할 수 없 는 일이 다.우 리 는 자바 메 일 Sender 의 Bean 을 우리 자신의 실현 클래스 에 주입 한 다음 자바 메 일 API 를 사용 하여 이메일 을 보 내야 합 니 다.
1.텍스트 메 일 발송
public void sendSimpleEmail() {
// Email
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("159****[email protected]");
message.setTo("****@qianxx.com");
message.setSubject(" ");
message.setText(" ");
javaMailSender.send(message);
}
일반 텍스트 의 Email 은 Simple MailMessage 인 스 턴 스 를 구성 하 는데 이 대상 은 이메일 메 시 지 를 편리 하 게 보 낼 수 있 습 니 다.2.첨부 메 일 발송
Spring 의 Email 기능 은 일반 텍스트 의 Email 에 국한 되 지 않 습 니 다.우 리 는 첨부 파일 도 추가 할 수 있다.첨부 파일 이 있 는 Email 을 보 내 려 면,관건 적 인 기 교 는 multipart 형식의 메 시 지 를 만 드 는 것 입 니 다.-Email 은 여러 부분 으로 구성 되 어 있 으 며,그 중 일 부 는 Email 체 이 고,다른 부분 은 첨부 파일 입 니 다.multipart 형식의 Email 을 보 내기 위해 서 는 MIME(Multipurpose Internet Mail Extensions)메 시 지 를 만들어 야 합 니 다.
public void mimeEmail() throws MessagingException {
// MimeMessage API , MimeMessageHelper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
// true , multipart /
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom("159****[email protected]");
mimeMessageHelper.setTo("****@qianxx.com");
mimeMessageHelper.setSubject(" ");
mimeMessageHelper.setText(" ");
// , Email ,
mimeMessageHelper.addAttachment("boot.png", new ClassPathResource("public/images/boot.png"));
javaMailSender.send(mimeMessage);
}
3.부 텍스트 메 일 발송Spring 의 Email 기능 은 첨부 파일 을 추가 하 는 것 외 에 도 HTML 을 사용 하여 메시지 체 의 내용 을 미화 할 수 있다.부 텍스트 를 보 내 는 Email 은 간단 한 텍스트 를 보 내 는 Email 과 크게 다 르 지 않 습 니 다.관건 은 setText()방법의 메시지 텍스트 를 HTML 로 설정 하고 두 번 째 인 자 를 true 로 설정 하 는 것 입 니 다.이것 은 HTML 의 부 텍스트 임 을 표시 합 니 다.
public void htmlEmail() throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom("159****[email protected]");
mimeMessageHelper.setTo("****@qianxx.com");
mimeMessageHelper.setSubject(" ");
String html = "<html><body><h4>Hello,SpringBoot</h4><img src='cid:boot' /></body></html>";
mimeMessageHelper.setText(html, true);
// cid, ,
mimeMessageHelper.addInline("boot", new ClassPathResource("public/images/boot.png"));
javaMailSender.send(mimeMessage);
}
4.Thymeleaf 템 플 릿 사용HTML 태그 의 문자열 조합 은 매우 까다 로 운 일이 다.당신 의 머 릿 속 에서 HTML 라벨 을 분석 하고 렌 더 링 할 때 어떤 모습 을 보일 지 상상 하 는 것 은 매우 어렵 기 때 문 입 니 다.HTML 을 자바 코드 에 섞 으 면 이 문 제 를 더욱 복잡 하 게 만 들 수 있다.
따라서 Spring 이 제시 한 솔 루 션 은 템 플 릿 을 사용 하여 HTML 텍스트 를 만 들 고 아파 치 Velocity 와 Thymeleaf 를 포함 한 다양한 템 플 릿 방안 을 선택 할 수 있 습 니 다.여기 서 Thymeleaf 템 플 릿 의 용법 만 소개 합 니 다.
1.Thymeleaf 템 플 릿― email.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Email</title>
</head>
<body>
<img src='cid:boot'>
<h4><span th:text="${title}">Craig Walls</span> says... </h4>
<i><span th:text="${content}">Hello Boot!</span></i>
</body>
</html>
2.메 일 발송
@RunWith(SpringRunner.class)
@SpringBootTest
public class ThymeleafApplicationTests {
@Autowired
private JavaMailSender javaMailSender;
@Autowired
private SpringTemplateEngine templateEngine;
@Test
public void contextLoads() throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom("159****[email protected]");
mimeMessageHelper.setTo("****@qianxx.com");
mimeMessageHelper.setSubject("ThymeLeaf ");
// Thymeleaf html
Context ctx = new Context();
ctx.setVariable("title", "Craig Walls");
ctx.setVariable("content", "Hello Boot!");
String emailText = templateEngine.process("email/email", ctx);
mimeMessageHelper.setText(emailText, true);
// cid, ,
mimeMessageHelper.addInline("boot", new ClassPathResource("/static/img/boot.png"));
javaMailSender.send(mimeMessage);
}
}
데모 소스 코드:https://github.com/JMCuixy/Boot총결산
SpringBoot 기초 튜 토리 얼 의 통합 메 일 서비스 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 통합 메 일 서비스 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.