<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com"/> // 지메일일 경우
<property name="port" value="587"/> // 지메일일 경우
<property name="username" value="메일계정"/> //보내는사람 메일계정
<property name="password" value="xxxxx(비밀번호)"/> //보내는사람 비밀번호
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
SimpleMailMessage(메일제목, 메일내용)
MimeMessage message = javaMailSender.createMimeMessage();
message.setSubject("제목", "UTF-8");
String htmlMsg = "<h1>내용</h1>";
message.setText(htmlMsg, "UTF-8", "html");
message.setFrom(new InternetAddress("발신자 이메일"));
message.addRecipient(RecipientType.TO, new InternetAddress("수신자 이메일", "USER", "UTF-8"));
javaMailSender.send(message);
Session session = Session.getDefaultInstance(prop, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
try{
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(FROM, FROMNAME));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
msg.setSubject(SUBJECT);
msg.setContent(BODY, "text/html;charset=euc-kr");
Transport.send(message);
} catch (MessagingException m) {
m.printStackTrace();
}
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
helper.setFrom(new InternetAddress(sessionVO.getEmail(), sessionVO.getName()));
helper.setTo(toEmail);
helper.setSubject(title);
// 포함된 텍스트가 HTML이라는 의미로 true 플래그를 사용한다
helper.setText(body, true);
mailSender.send(message);
public void sendEmail() throws Exception {
String host = "smtp.naver.com";
String port = "587";
String pass = "네이버 비밀번호";
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(host);
mailSender.setPort(NumberUtils.toInt(port, 587));
mailSender.setUsername("네이버 아이디(@ 뒤로 적지 않음)");
mailSender.setPassword(pass);
Properties props = mailSender.getJavaMailProperties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.put("mail.debug", "true");
try {
// 메일 내용 넣을 객체와, 이를 도와주는 Helper 객체 생성
MimeMessage mail = mailSender.createMimeMessage();
MimeMessageHelper mailHelper = new MimeMessageHelper(mail, "UTF-8");
// 메일 내용을 채워줌
mailHelper.setFrom("보내는 사람 메일주소"); // 보내는 사람 셋팅
mailHelper.setTo("받는 사람 메일주소"); // 받는 사람 셋팅
mailHelper.setSubject("제목세팅"); // 제목 셋팅
mailHelper.setText("<h1>공지사항</h1>"); // 내용 셋팅
// 메일 전송
mailSender.send(mail);
} catch(Exception e) {
e.printStackTrace();
}
}
List<String> mailList = userService.getUserEmail();
String host = "smtp.naver.com";
String port = "587";
String pass = "비밀번호";
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(host);
mailSender.setPort(NumberUtils.toInt(port, 587));
mailSender.setUsername("네이버아이디");
mailSender.setPassword(pass);
Properties props = mailSender.getJavaMailProperties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1.2"); // 얘를 추가하니까 메일 전송이 됨
props.put("mail.debug", "true");
try {
// 메일 내용 넣을 객체와, 이를 도와주는 Helper 객체 생성
for(String mail : mailList) {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
helper.setFrom("발신자 메일주소");
helper.setTo(수신자[i]);
helper.setSubject("제목");
helper.setText("내용", true);
mailSender.send(message);
}
https://www.tabnine.com/code/java/methods/javax.mail.internet.MimeMessage/%3Cinit%3E
https://kkangdda.tistory.com/86