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
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
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.EgovMberManageService;
import itn.let.uss.umt.service.MberManageVO;
import itn.let.utl.user.service.MjonNoticeSendUtil;
@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;
/** 알림전송 Util */
@Resource(name = "mjonNoticeSendUtil")
private MjonNoticeSendUtil mjonNoticeSendUtil;
/** mberManageService */
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
// 휴면회원 메일발송
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년되기 한달전 휴면회원 전환 안내메일 대상자
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setDormantDay(335);
List<MberManageVO> mberDormantList = mberManageDAO.selectMberDormantList(mberManageVO);
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();
sendLogVO.setSendType("2"); // 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송
sendLogVO.setFrstSendInfo(mailSender.getSend_from());//이메일 발신자 정보
sendLogVO.setReceive(mailSender.getSend_to()); //수신자 정보
sendLogVO.setContents(emailContent);
mjonMsgDataService.insertSysMsgLog(sendLogVO);
}
}
// 휴면회원 SMS발송
public void smsSendMemberDormant() throws Exception {
String mberId = "";
String mberNm = "";
String loginDt = "";
String moblphonNo = "";
// 로그인 안한지 1년되기 한달전 휴면회원 전환 안내메일 대상자
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setDormantDay(335);
List<MberManageVO> mberDormantList = mberManageDAO.selectMberDormantList(mberManageVO);
for (MberManageVO item : mberDormantList) {
mberId = item.getMberId();
mberNm = item.getMberNm();
loginDt = item.getLoginDt();
moblphonNo = item.getMoblphonNo();
// 시스템 문자발송
String callTo = moblphonNo;
String smsTxt = "시스템발송 테스트";
//mjonNoticeSendUtil.userSmsSendBySystem(callTo, smsTxt);
// 시스템 발송 로그
SendLogVO sendLogVO = new SendLogVO();
sendLogVO.setSendType("1"); // 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송
sendLogVO.setFrstSendInfo("15518011");
sendLogVO.setReceive(callTo);
sendLogVO.setContents(smsTxt);
//mjonMsgDataService.insertSysMsgLog(sendLogVO);
}
}
// 휴면회원으로 지정(업데이트)
public void setMemberDormantUpdate() throws Exception {
// 로그인 안한지 1년되기 한달전 휴면회원 전환 안내메일 대상자
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setDormantDay(365);
List<MberManageVO> mberDormantList = mberManageDAO.selectMberDormantList(mberManageVO);
for (MberManageVO item : mberDormantList) {
// 회원 휴면회원으로 업데이트
mberManageVO.setMberId(item.getMberId()); //탈퇴사유 중 직접입력으로 타입 지정
mberManageVO.setDormantYn("Y");
mberManageService.updateUserDormant(mberManageVO);
}
}
@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());
}
}