File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.uat.uia.web;
import java.io.File;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import itn.let.mail.service.StatusResponse;
/*import itn.let.uat.uia.web.EmailVO;
import itn.let.uat.uia.web.SMTPAuthenticator;*/
public class SendMail {
public void sendMail(EmailVO vo) throws Exception {
try {
Properties props = new Properties();
/*
* props.put("mail.transport.protocol", "smtp");// 프로토콜 설정
* props.put("mail.smtp.host", "smtp.gmail.com");// gmail SMTP 서비스 주소(호스트)
* props.put("mail.smtp.port", "465");// gmail SMTP 서비스 포트 설정
* props.put("mail.smtp.starttls.enable","true"); // gmail 인증용 Secure Socket
* Layer(SSL) 설정 props.setProperty("mail.smtp.socketFactory.class",
* "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true");//
* SMTP 인증을 설정 props.put("mail.debug", "true"); // log를 위한 debug 옵션 추가
*/
props.put("mail.smtp.auth", "true");// SMTP 인증을 설정
props.put("mail.smtp.starttls.enable", "true");
// props.put("mail.transport.protocol", "smtp");// 프로토콜 설정
props.put("mail.smtp.host", "smtp.gmail.com");// gmail SMTP 서비스 주소(호스트)
props.put("mail.smtp.port", "587");// gmail SMTP 서비스 포트 설정
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
// props.put("mail.smtp.debug", "true");
// gmail 인증용 Secure Socket Layer(SSL) 설정
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
// 인증정보
Authenticator auth = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, auth);
// MimeMessage mailMessage = mailImpl.createMimeMessage();
MimeMessage message = new MimeMessage(mailSession);
InternetAddress from = new InternetAddress(vo.getSend_from());
message.setFrom(from);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(vo.getSend_to()));
message.setSubject(vo.getTitle());
message.setContent(vo.getContents(), "text/html;charset=UTF-8");
// message.setText(vo.getContents());
message.setSentDate(new Date());
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
public void sendMail2(EmailVO vo) throws Exception {
try {
Properties props = new Properties();
/*
* props.put("mail.transport.protocol", "smtp");// 프로토콜 설정
* props.put("mail.smtp.host", "smtp.gmail.com");// gmail SMTP 서비스 주소(호스트)
* props.put("mail.smtp.port", "465");// gmail SMTP 서비스 포트 설정
* props.put("mail.smtp.starttls.enable","true"); // gmail 인증용 Secure Socket
* Layer(SSL) 설정 props.setProperty("mail.smtp.socketFactory.class",
* "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true");//
* SMTP 인증을 설정 props.put("mail.debug", "true"); // log를 위한 debug 옵션 추가
*/
// props.put("mail.smtp.auth", "true");// SMTP 인증을 설정
// props.put("mail.smtp.starttls.enable","true");
// //props.put("mail.transport.protocol", "smtp");// 프로토콜 설정
// props.put("mail.smtp.host", "smtp.worksmobile.com");// gmail SMTP 서비스 주소(호스트)
// props.put("mail.smtp.port", "587");// gmail SMTP 서비스 포트 설정
// /*props.put("mail.smtp.ssl.trust","smtp.gmail.com");
// props.put("mail.smtp.ssl.protocols", "TLSv1.2");*/
// props.put("mail.smtp.starttls.enable","true");
// props.put("mail.smtp.debug", "true");
// gmail 인증용 Secure Socket Layer(SSL) 설정
// props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
// worksmobile 계정 설정
props.put("mail.smtp.host", "smtp.worksmobile.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.trust", "smtp.worksmobile.com");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
// props.put("mail.smtp.debug", "true");
// 인증정보
Authenticator auth = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, auth);
/*
* Session mailSession = Session.getInstance(props, new
* javax.mail.Authenticator() { protected PasswordAuthentication
* getPasswordAuthentication() { return new
* PasswordAuthentication("noreply@munjaon.co.kr", "easytour7!"); } });
*/
// mailSession.setDebug(true);
// MimeMessage mailMessage = mailImpl.createMimeMessage();
MimeMessage message = new MimeMessage(mailSession);
InternetAddress from = new InternetAddress(vo.getSend_from());
message.setFrom(from);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(vo.getSend_to()));
message.setSubject(vo.getTitle());
message.setContent(vo.getContents(), "text/html;charset=UTF-8");
// message.setText(vo.getContents());
message.setSentDate(new Date());
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
// public SuccessResponse itnSendMail(EmailVO vo) throws Exception {
public void itnSendMail(EmailVO vo) throws Exception {
Properties props = new Properties();
String returnMsg = "지원해 주셔서 감사합니다.";
HttpStatus status = HttpStatus.OK;
// worksmobile 계정 설정
props.put("mail.smtp.host", "smtp.worksmobile.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.trust", "smtp.worksmobile.com");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
// props.put("mail.smtp.debug", "true");
// 인증정보
Authenticator auth = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, auth);
Multipart mp = new MimeMultipart();
// 파일 영역
if(StringUtils.isNotEmpty(vo.getAtch_file_name()))
{
System.out.println(" IN vo.getAtch_file_name() :: "+vo.getAtch_file_name());
MimeBodyPart mailFile = new MimeBodyPart();
FileDataSource fds = new FileDataSource(new File(vo.getAtch_file_path()).getAbsolutePath());
mailFile.setDataHandler(new DataHandler(fds));
mailFile.setFileName(MimeUtility.encodeText(vo.getAtch_file_name(), "euc-kr","B"));
mp.addBodyPart(mailFile);
}
//메일 영역
MimeBodyPart mailInfo = new MimeBodyPart();
mailInfo.setContent(vo.getContents(), "text/html; charset=UTF-8");
mp.addBodyPart(mailInfo);
// mailSession.setDebug(true);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(vo.getSend_from()));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(vo.getSend_to()));
message.setSubject(vo.getTitle());
message.setContent(vo.getContents(), "text/html;charset=UTF-8");
message.setSentDate(new Date());
message.setContent(mp);
Transport.send(message);
// return new SuccessResponse(status, returnMsg, LocalDateTime.now());
}
}