File name
Commit message
Commit date
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());
}
}