[Spring Boot] 이메일 보내기
2021. 6. 2. 11:38ㆍSpring
MailUtil
코드를 작성하기 전 먼저 의존성을 주입해주어야 한다.
// https://mvnrepository.com/artifact/org.apache.commons/commons-email implementation group: 'org.apache.commons', name: 'commons-email', version: '1.4'
MailUtil.java
//메일을 보낼 클래스 public class MailUtil { public void sendMail(User user) throws Exception { //Mail Server 설정 String charSet = "utf-8"; String hostSMTP = "smtp.naver.com"; //SMTP 서버명 String hostSMTPid = ""; //이메일 아이디 String hostSMTPpw = ""; // 이메일 패스워드 //보내는 사람 String fromEmail = ""; //보내는 사람의 이메일 String fromName = "Danggeon; String subject = ""; //메일 제목 String msg = ""; //메일 내용 subject = "[DANGGEON] 임시 비밀번호 발급 안내"; msg += "<div align = 'left'>"; msg += "<h3>"; msg += user.getUsername() + "님의 임시 비밀번호입니다. <br> 비밀번호를 변경하여 사용하세요 </h3>"; msg += "<p>임시 비밀번호 : "; msg += user.getPassword() + "</p></div>"; //email 전송 String mailRecipient = user.getEmail(); //받는 사람 이메일 주소 try { //객체 선언 HtmlEmail mail = new HtmlEmail(); mail.setDebug(true); mail.setCharset(charSet); mail.setSSLOnConnect(true); //SSL 사용 mail.setHostName(hostSMTP); mail.setSmtpPort(465); //SMTP 포트 번호 mail.setAuthentication(hostSMTPid, hostSMTPpw); mail.setStartTLSEnabled(true); //TLS 사용 mail.addTo(mailRecipient, charSet); mail.setFrom(fromEmail, fromName, charSet); mail.setSubject(subject); mail.setHtmlMsg(msg); mail.send(); }catch (Exception e) { e.printStackTrace(); } } }
마지막으로 이건 gmail, naver 둘 다 설정을 해줘야한다.
여기서 hostSMTP는 Gmail, naver가 각각 다르다! 그래서 해당 email에 맞는 SMTP를 설정해주어야한다!
그렇지 않으면 서버에서 메일을 보낼 수 없으니 꼭 설정해야한다.
'Spring' 카테고리의 다른 글
@Mock객체를 사용해서 Page타입 객체 테스트코드 작성하기 (3) | 2021.07.29 |
---|---|
[Spring Boot] Spring Auditing 적용해보기 (0) | 2021.06.02 |
[Spring Boot] @Validation Exception 처리하기 (0) | 2021.06.02 |
[Spring Boot] S3 이미지 업로드 (0) | 2021.06.02 |
[Spring Boot]S3 버킷 생성 (0) | 2021.06.02 |