본문 바로가기

프로그래밍/스프링[Spring]

[스프링] 메일 전송 시 html이 텍스트로 출력 되는 경우 해결 방법



 

안녕하세요.

 

이번 글에서는 메일로 html로 작성하여 메일을 보낼 때 텍스트로 출력되는 경우에

 

대한 해결 방법에 대해 알려드리겠습니다.

 

우선 기존 스프링에서 메일을 보내는 방법에 대한 글입니다.

 

 

[스프링] 스프링에서 네이버 이메일을 이용한 Email 발송방법

안녕하세요 이번에는 스프링 프레임워크에서 간단하게 이메일 발송하는 방법에 대해 알아보도록 하겠습니다. ​ 자 우선 네이버 이메일에서 SMTP 설정을 합니다. 순서에 맞게 클릭하시면 간단하게 설정이 가능합..

baessi.tistory.com

 

이 부분에서 메세지 설정 부분을 확인합니다.

 

Message mimeMessage = new MimeMessage(session); 
mimeMessage.setFrom(new InternetAddress("*******@naver.com")); 
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient)); 
mimeMessage.setSubject(subject); 
mimeMessage.setText(body); 
Transport.send(mimeMessage);

 

 

해당 부분입니다.

 

mimeMessage.setText(body);

 

 

자 여기서 setText 부분을 다음과 같이 변경합니다.

 

mimeMessage.setContent(body,  "text/html;charset=euc-kr"); 

 

 

변경된 부분은 다음과 같습니다.

 

Message mimeMessage = new MimeMessage(session); 
mimeMessage.setFrom(new InternetAddress("ncsikkkk@naver.com")); 
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient)); 
mimeMessage.setSubject(subject); 
mimeMessage.setContent(body,"text/html;charset=euc-kr"); 
Transport.send(mimeMessage);

 

이렇게 되면 html이 정상적으로 인식이 되는 것을 확인할 수 있습니다.

 

참고로 메일로 전송하게 되면 css는 인라인 방식의 css만 인식하게 되므로 수정이 필요합니다


Ex) style="" 로 css를 작성해야 합니다.

 

<div style="color:white;">테스트</div>

 

이상으로 마치도록 하겠습니다.

 

감사합니다.