SMTP
https://devofroad.tistory.com/43
https://unknown-coding.tistory.com/m/15
SMTP 파일 첨부
https://m.cafe.daum.net/ITVillage/PkLT/3
* pom.xml
<!-- 인증 메일 전송 관련 -->
<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- 인증 메일 전송 관련 -->
* MemberServiceImpl
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
// 회원가입 이메일 본인인증 메일 전송
@Override
public String sendVerificationEmail(String email) {
String validationCode = RandomStringUtils.random(6, false, true);
// 이메일 전송 양식
String fromEmail = mailSender.getUsername();
String toMail = email;
String title = "[MOVIEPEDIA] 회원 가입 인증 이메일입니다.";
String htmlContent = readTextFile("signUpVerificationEmailHtml.txt");
htmlContent = htmlContent.replace("validationCode", validationCode);
// 이메일 전송
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
// true 매개값 전달 시 multipart 형식의 메세지 전달이 가능해짐. 이때 문자 인코딩 설정도 가능
helper.setFrom(fromEmail);
helper.setTo(toMail);
helper.setSubject(title);
helper.setText(htmlContent, true);
// true 매개값 전달 시 html 형식으로 전송(작성 x-> 단순 텍스트로 전달)
// 파일 첨부
File file = new File("");
log.info(file.getAbsolutePath() + "/src/main/webapp/resources/img/logo.png"); // 상대경로
helper.addInline("logo", new FileDataSource("D:\\workspace_sts3_moviepedia\\moviepedia\\src\\main\\webapp\\resources\\img\\logo.png"));
// helper.addInline(contentId, dataSource); : 자원 첨부 메서드. FileDataSource 클래스 함께 이용
mailSender.send(message);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return validationCode;
}