DB에 저장된 회원정보를 가지고 이메일을 보낼 것 이라
저장된 이메일을 찾아오고 보내주도록 하겠습니다
#Java MailSender
spring.mail.host=smtp.naver.com
spring.mail.port=465
spring.mail.username=이메일@naver.com
spring.mail.password=비밀번호
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.protocol=smtps
implementation 'org.springframework.boot:spring-boot-starter-mail'
public class MailHandlerService {
private JavaMailSender sender;
private MimeMessage message;
private MimeMessageHelper messageHelper;
// 생성자
public MailHandlerService(JavaMailSender jSender) throws
MessagingException {
this.sender = jSender;
message = jSender.createMimeMessage();
messageHelper = new MimeMessageHelper(message, true, "UTF-8");
}
// 보내는 사람 이메일
public void setFrom(String fromAddress) throws MessagingException {
messageHelper.setFrom(fromAddress);
}
// 받는 사람 이메일
public void setTo(String email) throws MessagingException {
messageHelper.setTo(email);
}
// 보낼때 제목
public void setSubject(String subject) throws MessagingException {
messageHelper.setSubject(subject);
}
// 메일 내용
public void setText(String text, boolean useHtml) throws MessagingException {
messageHelper.setText(text, useHtml);
}
// 발송
public void send() {
try {
sender.send(message);
}catch(Exception e) {
e.printStackTrace();
}
}
}
public void mailSendPw(String email, String newPassword) {
try {
MailHandlerService mailHandler = new MailHandlerService(mailSender);
System.out.println(mailSender);
// 받는 사람
mailHandler.setTo(email);
// 보내는 사람
mailHandler.setFrom(FROM_ADDRESS);
// 제목
mailHandler.setSubject("[홈페이지이름] 임시비밀번호");
// HTML Layout
String htmlContent = "<p>" + "임시 비밀번호 :"+ newPassword;
mailHandler.setText(htmlContent, true);
mailHandler.send();
}
catch(Exception e){
e.printStackTrace();
}
}
DB에서 이메일 찾아오기 ↓
<select id="findEmail" parameterType="String" resultType="String" >
SELECT user_email FROM tbl_user WHERE user_id=#{id}
</select>
// 이메일찾기
public String findEmail(String id);
// 이메일찾기
public String findEmail(String id) {
return mapper.findEmail(id);
}
String newPassword= findListService.getRamdomPassword(10); // 임시비밀번호
String email = findListService.findEmail(id); // 이메일 찾기
mailSandService.mailSendId(email,id); // 이메일 발송
+++ 추가 폼변경
이메일 폼 글씨에 색상 넣기
// HTML Layout
StringBuffer sb = new StringBuffer();
sb.append("<h1>아이디 임시비밀번호</h1><br>");
sb.append("안녕하세요. ");
sb.append("<font color='#1E90FF'>"+name+"</font>");
sb.append(" 님, <br>");
sb.append("귀하께서 요청하신 아이디와 임시비밀번호<br>");
sb.append("수신을 위해 발송 된 메일입니다.<br>");
sb.append("<br>");
sb.append("고객님이 가입하신 아이디 "+"<font color='#1E90FF'>"+id+"</font>"+" 입니다.<br>");
sb.append("임시비밀번호는 "+"<font color='#1E90FF'>"+newPassword+"</font>"+" 입니다.<br>");
sb.append("로그인 후에는 새로운 비밀번호로 변경하셔야합니다.<br>");
sb.append("감사합니다.<br>");
String html = sb.toString();
mailHandler.setText(html, true);