sitelink1 | https://data-make.tistory.com/666 |
---|---|
sitelink2 | https://blog.naver.com/heartflow89/221106011239 |
sitelink3 | https://velog.io/@ieed0205/Spring-%EC%9D...4%EA%B8%B0 |
sitelink4 | https://m.blog.naver.com/tnakekd/220324021042 |
sitelink5 | https://uno-kim.tistory.com/196 |
sitelink6 |
회원가입용 인증 메일을 보내는 방법은 다양합니다.
스프링 프레임워크를 사용한다면, 스프링에서 제공하는 JavaMailSender를 이용하여 구현할 수 있습니다.
JavaMailSender를 이용하면 SMTP 서버를 이용하여 메일을 보낼 수 있습니다.
JavaMailSender를 사용하는 방법은 다음과 같습니다.
- MailConfig 작성 - xml로 설정하지 않고 java파일로 설정했다.
- Tempkey.java 생성
- MailHandler.java 생성
- Member.java - domain 클래스 정의
- MemberMapper.xml 에 쿼리문 생성
- MemberDao.java
- MemberService 인터페이스
- MemberServiceImpl.java
스프링 프레임워크를 사용하지 않을 경우에는 JavaMailSender를 사용할 수 없습니다.
하지만 JavaMailSender와 비슷한 기능을 하는 JavaMail API를 사용하여 구현할 수 있습니다.
JavaMail API를 이용하여 메일을 보내는 방법은 다음과 같습니다.
public void sendEmail(String toEmail, String subject, String body) throws MessagingException {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your_email_address@gmail.com", "your_email_password");
}
});
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your_email_address@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
message.setSubject(subject);
message.setText(body);
Transport.send(message);
}
위 코드에서는 Gmail SMTP 서버를 이용하여 메일을 보내고 있습니다.
이메일 주소와 비밀번호를 입력하면 됩니다.
테스트했는데 google 에서의 인증오류가 발생해서 해당 코드를 사용하지 못했다