[SpringBoot] JavaMailSender를 이용한 SMTP 발송 테스트 진행
build.gradle에는 아래 항목을 추가 하였습니다 , javax.mail 사용시에 오류가 발생 하여 jakarta.mail로 대체 하였습니다.
//jakarta.mail
implementation group: 'com.sun.mail', name: 'jakarta.mail', version: '2.0.1'
application.properties 파일에는 메일 서버 관련 설정을 진행 하였습니다.
[ 제가 테스트 한 메일 서버의 경우 SSL 설정을 요청 하였습니다. ]
#mail관련
spring.mail.host=smtps.hiworks.com
spring.mail.port=465
spring.mail.username=아이디@도메인
spring.mail.password=인증패스워드
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.ssl.trust=*
JavaMailSenderImpl의 경우 @Autowired 어노테이션으로 자동으로 의존성을 주입하였습니다!
package com.doc.controller;
import java.util.HashMap;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import jakarta.mail.internet.MimeMessage;
@RestController
public class MailTestController {
private final Logger logger = LogManager.getLogger(FileController.class);
@Autowired
private JavaMailSenderImpl mailSender;
/*
@Autowired
private JavaMailSender javaMailSender;
@Bean
public JavaMailSenderImpl mailSender() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
return javaMailSender;
}
*/
@GetMapping("/MailSendTest")
public String MailSendTest(@RequestParam HashMap<String,String> param) {
logger.info(new Exception().getStackTrace()[0].getMethodName());
try {
String from = "발송자메일주소";
String to = "수신자메일주소";
String subject = "SMTP 발송 테스트 진행";
String htmlMessage = "<html><head></head><body><p style='font-size:30px'>MIME Message 테스트</p></body></html>";
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper mimeHelper = new MimeMessageHelper(mimeMessage , true , "UTF-8");
mimeHelper.setFrom(from);
mimeHelper.setTo(to);
mimeHelper.setSubject(subject);
mimeHelper.setText(htmlMessage , true);
logger.info(mailSender.getHost());
logger.info(mailSender.getPort());
mailSender.send(mimeMessage);
} catch(Exception exception) {
logger.error(exception);
}
return "SUCCESS";
}
}
테스트 시에 메일이 전송 되고 , 수신되는 것을 확인할 수 있었습니다.
'JAVA' 카테고리의 다른 글
[Mybatis] ? 물음표 기호 처리 방안 [ Oracle , Tibero ] (1) | 2024.01.09 |
---|---|
MimeMessage , Multipart , MimeBodyPart 를 이용한 HTML 메일 본문 , 이미지 , 첨부파일 전송 예제 (0) | 2023.12.17 |
[JAVA] zip4j 이용하여 파일 앞축 및 암호 설정 테스트 진행 (0) | 2023.10.24 |
특정 위치에 파일 중복 여부 체크 하고 새로운 파일명 구하기 예제 (0) | 2023.09.07 |
Mybatis PlatformTransactionManager 프로그래밍 방식으로 호출 진행 예 (0) | 2023.08.17 |