package itn.let.mail.service.impl; import java.io.File; import java.io.IOException; import java.time.LocalDateTime; import java.util.List; import java.util.UUID; import javax.annotation.Resource; import org.jsoup.Jsoup; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import itn.com.cmm.EgovMultiPartEmail; import itn.let.mail.service.EmailItnVO; import itn.let.mail.service.MailTemplateService; import itn.let.mail.service.StatusResponse; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.uat.uia.service.impl.MberManageDAO; import itn.let.uat.uia.web.EmailVO; import itn.let.uat.uia.web.SendLogVO; import itn.let.uat.uia.web.SendMail; import itn.let.uss.umt.service.MberManageVO; @Service("MailTemplateService") public class MailTemplateServiceImpl extends EgovAbstractServiceImpl implements MailTemplateService { @Value("#{globalSettings['Globals.mailContentFileFolder']}") private String MAIL_CONTENT_PATH; @Value("#{globalSettings['Globals.itn.file.saveDir']}") private String ITN_FILE_SAVE_DIR; @Value("#{globalSettings['Globals.itn.recruit.template.url']}") private String ITN_RECRUIT_TEMPLATE_URL; @Value("#{globalSettings['Globals.itn.contact.us.template.url']}") private String ITN_CONTACT_US_TEMPLATE_URL; @Value("#{globalSettings['Globals.itn.mail.to.address']}") private String ITN_MAIL_TO_ADDRESS; @Resource(name = "egovMultiPartEmail") private EgovMultiPartEmail egovMultiPartEmail; @Resource(name = "mberManageDAO") private MberManageDAO mberManageDAO; //문자발송 서비스 @Resource(name = "MjonMsgDataService") private MjonMsgDataService mjonMsgDataService; // 휴면회원 메일발송 public void mailSendMemberDormant() throws Exception { //MAIL_CONTENT_PATH = "C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/mjon/src/main/webapp"; if (MAIL_CONTENT_PATH == null) { MAIL_CONTENT_PATH = ""; } String mberId = ""; String mberNm = ""; String mberEmailAdres = ""; String loginDt = ""; String emailTitle = ""; String emailContent = ""; // 로그인 안한지 1년되기 한달전 휴면회원 전환 안내메일 대상자 List mberDormantList = mberManageDAO.selectMberDormantList(); for (MberManageVO item : mberDormantList) { mberId = item.getMberId(); mberNm = item.getMberNm(); mberEmailAdres = item.getMberEmailAdres(); loginDt = item.getLoginDt(); emailTitle = "[문자온] 휴면회원 전환 안내메일"; //mailContent = Jsoup.parse(new File(MAIL_CONTENT_PATH + "/mail/mail_member_dormant.html"), "UTF-8").toString(); //mailContent = Jsoup.parse(new File(MAIL_CONTENT_PATH + "https://www.munjaon.co.kr/publish/email_form_dormant.html"), "UTF-8").toString(); //http://localhost/publish/email_form_dormant.html emailContent = Jsoup.connect("https://www.munjaon.co.kr/publish/email_form_dormant.html") .data("query", "Java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post() .toString(); emailContent = emailContent.replace("[[_UserId_]]", mberId); emailContent = emailContent.replace("[[_DormantDate_]]", loginDt); System.out.println("mberId : " + mberId + ", mberNm : " + mberNm + ", mberEmailAdres : " + mberEmailAdres + ", loginDt : " + loginDt); System.out.println("mailContent : " + emailContent); // 이메일로 보내기 SendMail sMail = new SendMail(); EmailVO mailSender = new EmailVO(); mailSender.setSend_from("noreply@munjaon.co.kr"); // 사용자 이메일 주소 mailSender.setTitle(emailTitle); // 메일 제목 mailSender.setContents(emailContent); // 메일 내용 mailSender.setSend_to(mberEmailAdres); // 발송자 이메일 주소 // 메일 발송하기 sMail.sendMail2(mailSender); SendLogVO sendLogVO = new SendLogVO(); // 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송 sendLogVO.setSendType("2"); sendLogVO.setFrstSendInfo(mailSender.getSend_from());//이메일 발신자 정보 sendLogVO.setReceive(mailSender.getSend_to()); //수신자 정보 sendLogVO.setContents(emailContent); mjonMsgDataService.insertSysMsgLog(sendLogVO); } } @Override public StatusResponse mailSendItnRecruitFile(MultipartFile multi) { String returnMsg = ""; HttpStatus status = HttpStatus.OK; long size = multi.getSize(); String originFilename = multi.getOriginalFilename(); UUID uuid = UUID.randomUUID(); String fileSaveNm = uuid.toString() + "_" + originFilename; File saveFile = new File(ITN_FILE_SAVE_DIR, fileSaveNm); File folder = new File(ITN_FILE_SAVE_DIR); System.out.println("saveFile :: "+saveFile); try { if (!folder.exists()) { folder.mkdir(); System.out.println("폴더가 생성완료."); } multi.transferTo(saveFile); returnMsg = fileSaveNm; } catch (IOException e) { // TODO: handle exception returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요"; status = HttpStatus.BAD_REQUEST; e.printStackTrace(); } return new StatusResponse(status, returnMsg, originFilename, LocalDateTime.now()); } @Override public StatusResponse mailSendItnRecruit(EmailItnVO emailItnVO) { System.out.println("emailItnVO :: "+ emailItnVO.toString()); String returnMsg = "지원해 주셔서 감사합니다."; HttpStatus status = HttpStatus.OK; String emailContent = ""; SendMail sMail = new SendMail(); try { emailContent = Jsoup.connect(ITN_RECRUIT_TEMPLATE_URL) .data("query", "Java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post() .toString(); emailContent = emailContent.replace("[[_Name_]]", emailItnVO.getName()) .replace("[[_PhoneNumber_]]", emailItnVO.getPhone()) .replace("[[_Email_]]", emailItnVO.getEmail()) .replace("[[_Portfolio_]]", emailItnVO.getPortfolio()) .replace("[[_Field_]]", emailItnVO.getField()) .replace("[[_Content_]]", emailItnVO.getContent()) ; // 메일 첨부파일을 위한 절대경로 String absolutePath = ITN_FILE_SAVE_DIR + emailItnVO.getFileNm(); // 메일 제목 String mailTitle = "["+emailItnVO.getField()+"] (주)아이티앤 입사지원 메일 입니다."; // return sMail.itnSendMail(new EmailVO( sMail.itnSendMail(new EmailVO( mailTitle , emailContent , absolutePath , emailItnVO.getOriFileNm() , ITN_MAIL_TO_ADDRESS , "noreply@munjaon.co.kr" )); } catch (IOException e) { returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요"; status = HttpStatus.BAD_REQUEST; e.printStackTrace(); } catch (Exception e) { returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요"; status = HttpStatus.BAD_REQUEST; e.printStackTrace(); } return new StatusResponse(status, returnMsg, LocalDateTime.now()); } @Override public StatusResponse mailSendItnContactUs(EmailItnVO emailItnVO) { String returnMsg = "문의해 주셔서 감사합니다.\n빠른 시일 내에 답변해 드리겠습니다."; HttpStatus status = HttpStatus.OK; String emailContent = ""; SendMail sMail = new SendMail(); try { emailContent = Jsoup.connect(ITN_CONTACT_US_TEMPLATE_URL) .data("query", "Java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post() .toString(); emailContent = emailContent.replace("[[_Title_]]", emailItnVO.getTitle()) .replace("[[_Name_]]", emailItnVO.getName()) .replace("[[_Email_]]", emailItnVO.getEmail()) .replace("[[_Content_]]", emailItnVO.getContent()) ; System.out.println("emailItnVO :: "+emailItnVO.toString()); // 메일 첨부파일을 위한 절대경로 String absolutePath = ITN_FILE_SAVE_DIR + emailItnVO.getFileNm(); // 메일 제목 String mailTitle = "[(주)아이티앤 문의] "+emailItnVO.getName()+"님의 문의 내용입니다."; System.out.println("emailItnVO.getOriFileNm() :: ["+emailItnVO.getOriFileNm()+"]"); sMail.itnSendMail(new EmailVO( mailTitle , emailContent , absolutePath , emailItnVO.getOriFileNm() , ITN_MAIL_TO_ADDRESS , "noreply@munjaon.co.kr" )); } catch (IOException e) { returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요"; status = HttpStatus.BAD_REQUEST; e.printStackTrace(); } catch (Exception e) { returnMsg = "오류가 발생하였습니다. \n관리자에게 문의해 주세요"; status = HttpStatus.BAD_REQUEST; e.printStackTrace(); } return new StatusResponse(status, returnMsg, LocalDateTime.now()); } }