koipa_edu_2025-1/src/main/java/kcc/ve/cmm/VeSendMail.java

377 lines
20 KiB
Java

package kcc.ve.cmm;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
public class VeSendMail {
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
@Value("#{globalSettings['Globals.edu.mail.template']}")
private String TEMPLATE_URI;
//================================================================
//찾교 메일 발송 계정 ID, PW 넣는 부분
//테스트를 위한 저작위 공통 계정 ID: no-reply@copyright.or.kr PW: Copycopy12!
//찾교만 추가되어 찾교는 현재 메일발송 안됨_220221
//기존(찾교청소년) ID: school@copyright.or.kr PW: 연수원2669!
//신규(찾교성인) ID: edu@copyright.or.kr PW: Copy0723!
//기존(체험교실) ID: entt@copyright.or.kr PW: edu0213**
//신규(외부협력) ID: cev@copyright.or.kr PW: Copy0723!
//================================================================
//파라미터 정리
//1. sndFlag = 메뉴 구분
// C -> 찾교청소년
// S -> 찾교성인
// G -> 체험교실
// W -> 외부협력
// A -> 실무역량강화
// B -> 기소유예
//2. sndTo = 수신자
//3. vEEduAplctVO = eduAplctOrd(pk)
// sndHstryOrd(pk)
// sndCd(10 - sms, 20 - email)
// sndId(발송자)
// sndCn(발송내용)
//================================================================
public String VeSendMail(String sndFlag, String sndTo, VEEduAplctVO vEEduAplctVO) throws Exception {
String result = "success";
System.out.println("vEEduAplctVO.getClphone1()");
System.out.println(sndFlag);
System.out.println(vEEduAplctVO.getClphone1());
System.out.println(vEEduAplctVO.getClphone2());
System.out.println("vEEduAplctVO.getClphone2()");
try {
System.out.println("수정_2200317_12:46");
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "smtp.gov-dooray.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
// props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1");
props.put("mail.smtp.ssl.protocols", "TLSv1.1");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.put("mail.debug", "true");
Authenticator authenticator = new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
System.out.println("========== getPasswordAuthentication ==========");
String id = "no-reply@copyright.or.kr";
String pw = "Copycopy12!";
/*231120 - 성인 교육용 메일 정보 불일치 > 전부 청소년 메일로 우선 사용
* 20231201 - school@copyright.or.kr 만 발송 가능
* */
id = "school@copyright.or.kr";
pw = "dustndnjs2669!";
/*if("C".equals(sndFlag) || "Z".equals(sndFlag)) {
id = "school@copyright.or.kr";
//pw = "연수원2669!";
pw = "dustndnjs2669!";
}else if("S".equals(sndFlag)) {
id = "kedu@copyright.or.kr";
pw = "Copy0723!";
}else if("G".equals(sndFlag)) {
id = "entt@copyright.or.kr";
pw = "edu0213**";
}else if("W".equals(sndFlag)) {
id = "cev@copyright.or.kr";
pw = "Copy0723!";
}else if("UR".equals(sndFlag)) {
id = vEEduAplctVO.getClphone1();
pw = vEEduAplctVO.getClphone2();
}*/
System.out.println(id);
System.out.println(pw);
System.out.println("vEEduAplctVO.getClphone3()");
return new PasswordAuthentication(id,pw);
}
};
Session session = Session.getInstance(props, authenticator) ;
MimeMessage message = new MimeMessage(session);
//메일 내용
String Cn = vEEduAplctVO.getSndCn();
//메일 내용 textarea 작성 시, 메일에 Enter 반영
System.out.println("==============Cn================= \n"+Cn);
if(!"".equals(Cn)
&& Cn != null
&& !"SS".equals(sndFlag)
) {
Cn = Cn.replaceAll("\n", "<br/>");
}
System.out.println("==============Cn================= \n"+Cn);
//메일제목
message.setSubject("[한국저작권위원회] 찾아가는 교육서비스_알림");
/*
* 20231201
* 공통 템플릿에 사용할 데이터 this.getTemplate() 참조
* */
String name=""; // 담당자명
String phone="";// 폰번호
String email="";// 메일
// C -> 찾교청소년
// S -> 찾교성인
// G -> 체험교실
// W -> 외부협력
// A -> 실무역량강화
// B -> 기소유예
//발송메일 주소
String fromAddr = "no-reply@copyright.or.kr";
if("C".equals(sndFlag)) { // 청소년
// fromAddr = "school@copyright.or.kr";
name= "여부복 주임";// 담당자명
phone="055-792-0224";// 폰번호
email="yeo17@copyright.or.kr";// 메일
}else if("Z".equals(sndFlag)) { //
fromAddr = "school@copyright.or.kr";
message.setSubject("[한국저작권위원회] 찾아가는 저작권 교육관련 협조요청 사항");
}else if("S".equals(sndFlag)) { // 성인
name= "이미애 책임"; // 담당자명
phone="02-2669-0083";// 폰번호
email="miae@copyright.or.kr";// 메일
//담당자 변경 2024-01-30
name= "이정수 주임"; // 담당자명
phone="055-792-0233";// 폰번호
email="jslee@copyright.or.kr";// 메일
fromAddr = email;
}else if("G".equals(sndFlag)) { // 체험교실
name= "박인혜 선임"; // 담당자명
phone="055-792-0234";// 폰번호
email="ihpark@copyright.or.kr";// 메일
}else if("W".equals(sndFlag)) { // 외부협력
fromAddr = "cev@copyright.or.kr";
//메일제목
message.setSubject("[한국저작권위원회] 저작권 교육콘텐츠 수령 방법 안내");
//메일내용
Cn = "<!DOCTYPE html>\r\n" +
"<html lang=\"ko\">\r\n" +
"<head>\r\n" +
" <meta charset=\"UTF-8\">\r\n" +
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n" +
" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\r\n" +
" <meta name=\"viewport\" content=\"\" />\r\n" +
" <meta name=\"Keywords\" content=\"\" />\r\n" +
" <meta name=\"Description\" content=\"\" />\r\n" +
"</head>\r\n" +
"<body>\r\n" +
" <table align=\"center\" width=\"800\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border:5px solid rgb(241,89,34);\">\r\n" +
" <tbody>\r\n" +
" <tr>\r\n" +
" <td align=\"left\" bgcolor=\"#ffffff\" style=\"padding:30px 40px 40px;\">\r\n" +
" <a href=\"https://oneid.copyright.or.kr/\" rel=\"noreferrer noopener\" target=\"_blank\" data-saferedirecturl=\"https://www.google.com/url?q=https://oneid.copyright.or.kr/&amp;source=gmail&amp;ust=1647666525851000&amp;usg=AOvVaw0ZroUFKmk2_yTWKT0iYs_q\"><img alt=\"한국저작권위원회-통합회원 로고\" src=\"http://copyright.or.kr/offedu/visitEdu/usr/publish/images/common/ci.png\" style=\"width:200px; border:0px currentColor;vertical-align:middle\"></a>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
" <tr>\r\n" +
" <td align=\"center\" bgcolor=\"#ffffff\" style=\"padding:0 40px 22px;\">\r\n" +
" <p style=\"margin:0;padding:24px;font-family:'Noto Sans KR';line-height:26px;text-align:left;border:3px solid rgb(223,223,223);\">\r\n" +
" 안녕하세요~<br>한국저작권위원회 교육개발팀 조혜진 주임입니다.<br><br>저작권 교육에 관심을 가지고 신청해주셔서 진심으로 감사드립니다.<br><br>메일 하단에 ‘콘텐츠 수령 방법’에 대한 안내 링크가 있습니다.<br>클릭하여 다운로드 후, 안내 방법에 따라 신청하신 동영상 파일을 저장하여 사용하시면 됩니다.<br><br>교육 종료 후에는 ‘수강내역목록-강의이수정보등록’을 통해 이수내용(교육일시/교육인원) 작성 부탁드립니다. 교육이수 확인을 위해 필요한 과정이므로 반드시 등록해주시기 바랍니다.<br><br><span style=\"text-decoration:underline;\">더불어 신규과정으로 마이크로러닝 콘텐츠 6종을 함께 추천해 드립니다.</span><br>마이크로러닝 콘텐츠는 3분 정도의 숏폼 콘텐츠로 학교(초·중·고·대), 공공기관 등을 대상으로 제작한 5종과 가볍게 볼 수 있는 아이스브레이킹 영상 1종으로 구성되어 있습니다.<br><br>교육 시작 전이나 쉬는 시간에 분위기 전환을 위해 활용하시기 좋으며, 관심 있으신 선생님께서는 아래 링크를 통해 신청 부탁드립니다.<br>※ 마이크로러닝 콘텐츠 신청하기: <a href=\"https://www.copyright.or.kr/offedu\" style=\"text-decoration:none;color:#000000;\" target=\"_blank\">https://www.copyright.or.kr/offedu</a><br><br>교육과정 안내 및 콘텐츠 신청과 관련된 추가 문의사항은<br>아래 번호로 연락주시면 상세히 안내해드리도록 하겠습니다.<br><br>감사합니다.<br><br>조혜진 드림<br><br><a href=\"tel:055-792-0217\" style=\"text-decoration:none;color:#000000;\">☎ 055-792-0217</a><br><br><a href=\"https://www.copyright.or.kr/offedu/cmm/fms/FileDown.do?atchFileId=FILE_000000000016280&fileSn=0\" style=\"text-decoration:none;color:red;\"><strong style=\"font-size:20px;color:red\">[클릭하여 다운로드] ‘콘텐츠 수령 방법 안내’</strong></a>\r\n" +
" </p>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
" <tr>\r\n" +
" <td style=\"padding:60px 0 0;\">\r\n" +
" <table width=\"800\" bgcolor=\"#f8f8f8\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"padding:22px 0;border-top:1px solid #cecece;\">\r\n" +
" <tbody>\r\n" +
" <tr>\r\n" +
" <td align=\"left\" style=\"padding:0 28px;\">\r\n" +
" <a href=\"https://oneid.copyright.or.kr/\" rel=\"noreferrer noopener\" style=\"vertical-align:middle;display:table-cell\" target=\"_blank\" data-saferedirecturl=\"https://www.google.com/url?q=https://oneid.copyright.or.kr/&amp;source=gmail&amp;ust=1647666525852000&amp;usg=AOvVaw3aJ4SNBKmUaX89PBd69nPC\"><img alt=\"한국저작권위원회-통합회원 로고\" src=\"https://ci5.googleusercontent.com/proxy/0JqqeL8s5aHiWESa7Hkqq7DoxHF0qGfEGwL3ZsfXSpyh-P9mJolNp4QpMbgMj_A7cR44XGl1C3MdSjQ50oR_vqWDIv87H1E=s0-d-e1-ft#https://oneid.copyright.or.kr/images/mail/f_logo.gif\" style=\"border:0px currentColor;vertical-align:middle\" class=\"CToWUd\"></a>\r\n" +
" </td>\r\n" +
" <td align=\"left\" style=\"font-family:'Noto Sans KR';font-size:15px;letter-spacing:-0.2px;\">\r\n" +
" <p style=\"margin:0px 0px 11px;padding:0px\">본 메일은 발신전용으로 회신하지 않습니다.</p>\r\n" +
" <p style=\"margin:0px;padding:0px\"><span style=\"font-weight:bold\">진주</span> [우 52852] 경상남도 진주시 소호로 117, 1/2/5층. <span>&nbsp;대표번호 : 055.792.0000</span><br> <span style=\"font-weight:bold\">서울</span> [우 04323] 서울특별시 용산구 후암로 107, 5/16층. <span>&nbsp;대표번호 : 02.2669.0010</span></p>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
" </tbody>\r\n" +
" </table>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
" </tbody>\r\n" +
" </table>\r\n" +
"</body>\r\n" +
"</html>";
}else if("A".equals(sndFlag)) { // 실무역량
/*
* 실무역량
* 담당자: 김현아 차장
* 연락처: 02-2669-0082
* <hyuna@copyright.or.kr>
* */
name="김현아 차장"; // 담당자명
phone="02-2669-0082";// 폰번호
email="hyuna@copyright.or.kr";// 메일
// test
fromAddr = email;
}else if("B".equals(sndFlag)) { // 기반강화
/*
* 교육조건부 기소유예
* 담당자: 최홍석 주임
* 연락처: 055-792-0223
* */
name="최홍석 주임"; // 담당자명
phone="055-792-0223";// 폰번호
email="";// 메일
}
// 이 아이디만 인증가능
fromAddr = "school@copyright.or.kr";
/* 템플릿 만들기
* 청소년 성인 체험교실도 Cn 데이터 확인후 조건문 추가
* AnotaionSchedule 211 라인 참조
* */
if("A".equals(sndFlag) // A -> 기반강화
|| "B".equals(sndFlag) // B -> 기소유예
|| "C".equals(sndFlag) // C -> 찾교청소년
|| "G".equals(sndFlag) // G -> 체험교실
) {
String emailContent = "";
emailContent = this.getTemplate()
.replace("[[_Name_]]", name)
.replace("[[_Phone_]]", phone)
.replace("[[_Phone_tel_]]", phone)
.replace("[[_Email_]]", email)
.replace("[[_Content_]]", Cn)
;
Cn = emailContent;
}else if("S".equals(sndFlag)){ // S -> 찾교성인 . 템플릿 변경
String emailContent = "";
emailContent = this.getTemplate()
.replace("[[_Name_]] 드림", "")
.replace("[[_Phone_]]", phone)
.replace("[[_Phone_tel_]]", phone)
.replace("[[_Email_]]", email)
.replace("[[_Content_]]", "안녕하세요. 저작권배움터 찾아가는 교육 담당자입니다.<br>"+Cn)
;
Cn = emailContent;
}
// * C -> 찾교청소년
// * S -> 찾교성인
// * G -> 체험교실
// * W -> 외부협력
// * A -> 실무역량강화
// * B -> 기소유예
InternetAddress fromAddress = new InternetAddress(fromAddr);
InternetAddress toAddress = new InternetAddress(sndTo);
System.out.println(fromAddr);
System.out.println(sndTo);
System.out.println(Cn);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, toAddress );
message.setContent(Cn," text/html; charset=KSC5601");
System.out.println("------------------ 메일발송 시작 ----------------");
Transport.send(message);
System.out.println("------------------ 메일발송 끝 ----------------");
} catch (Exception e) {
e.printStackTrace();
result = "fail";
}
return result;
}
private String getTemplate() {
return "<!DOCTYPE html>"
+ "<html lang=\"ko\">"
+ "<head>"
+ "<meta charset=\"UTF-8\">"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"
+ "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />"
+ "<meta name=\"viewport\" content=\"\" />"
+ "<meta name=\"Keywords\" content=\"\" />"
+ "<meta name=\"Description\" content=\"\" />"
+ "</head>"
+ "<body>"
+ "<table align=\"center\" width=\"800\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border:5px solid rgb(241,89,34);\">"
+ "<tbody>"
+ "<tr>"
+ "<td align=\"left\" bgcolor=\"#ffffff\" style=\"padding:30px 40px 40px;\">"
+ "<a href=\"https://oneid.copyright.or.kr/\" rel=\"noreferrer noopener\" target=\"_blank\" data-saferedirecturl=\"https://www.google.com/url?q=https://oneid.copyright.or.kr/&amp;source=gmail&amp;ust=1647666525851000&amp;usg=AOvVaw0ZroUFKmk2_yTWKT0iYs_q\"><img alt=\"한국저작권위원회-통합회원 로고\" src=\"http://www.edu-copyright.or.kr/offedu/visitEdu/usr/publish/images/common/ci.png\" style=\"width:200px; border:0px currentColor;vertical-align:middle\"></a>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "<td align=\"center\" bgcolor=\"#ffffff\" style=\"padding:0 40px 22px;\">"
+ "<p style=\"margin:0;padding:24px;font-family:'Noto Sans KR';line-height:26px;text-align:left;border:3px solid rgb(223,223,223);\">"
+ "[[_Content_]]"
+ "<br><br>"
+ "<br><br>감사합니다."
+ "<br><br>[[_Name_]] 드림"
+ "<br><a href=\"tel:[[_Phone_tel_]]\" style=\"text-decoration:none;color:#000000;\">☎ [[_Phone_]]</a>"
+ "<br>☎ [[_Email_]]"
+ "</p>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "<td style=\"padding:60px 0 0;\">"
+ "<table width=\"800\" bgcolor=\"#f8f8f8\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"padding:22px 0;border-top:1px solid #cecece;\">"
+ "<tbody>"
+ "<tr>"
+ " <td align=\"left\" style=\"padding:0 28px;\">\r\n"
+ " <a href=\"https://oneid.copyright.or.kr/\" rel=\"noreferrer noopener\" style=\"vertical-align:middle;display:table-cell\" target=\"_blank\" data-saferedirecturl=\"https://www.google.com/url?q=https://oneid.copyright.or.kr/&amp;source=gmail&amp;ust=1647666525852000&amp;usg=AOvVaw3aJ4SNBKmUaX89PBd69nPC\"><img alt=\"한국저작권위원회-통합회원 로고\" src=\"https://ci5.googleusercontent.com/proxy/0JqqeL8s5aHiWESa7Hkqq7DoxHF0qGfEGwL3ZsfXSpyh-P9mJolNp4QpMbgMj_A7cR44XGl1C3MdSjQ50oR_vqWDIv87H1E=s0-d-e1-ft#https://oneid.copyright.or.kr/images/mail/f_logo.gif\" style=\"border:0px currentColor;vertical-align:middle\" class=\"CToWUd\"></a>\r\n"
+ " </td>\r\n"
+ " <td align=\"left\" style=\"font-family:'Noto Sans KR';font-size:15px;letter-spacing:-0.2px;\">\r\n"
+ " <p style=\"margin:0px 0px 11px;padding:0px\">본 메일은 발신전용으로 회신하지 않습니다.</p>\r\n"
+ " <p style=\"margin:0px;padding:0px\"><span style=\"font-weight:bold\">진주</span> [우 52852] 경상남도 진주시 소호로 117, 1/2/5층. <span>&nbsp;대표번호 : 055.792.0000</span><br> <span style=\"font-weight:bold\">서울</span> [우 04323] 서울특별시 용산구 후암로 107, 5/16층. <span>&nbsp;대표번호 : 02.2669.0010</span></p>\r\n"
+ " </td>\r\n"
+ " </tr>\r\n"
+ " </tbody>\r\n"
+ " </table>\r\n"
+ " </td>\r\n"
+ " </tr>\r\n"
+ " </tbody>\r\n"
+ " </table>\r\n"
+ "</body>\r\n"
+ "</html>";
}
}