티스토리 뷰

@Autowired

@Qualifier("mailSender")

private JavaMailSender webMailSender;


public Map sendMail(Map mailMap,List<Map> fileList,List<Map> imgList) throws Exception{


Map resultMap=new HashMap<>();

MimeMessage msg=this.webMailSender.createMimeMessage();

MimeMessageHelper message=new MimeMessageHelper(msg,true,"UTF-8");

message.setFrom(mailMap.get("SENDER_MAIL").toString());

String rece[]=mailInfoMap.get("RECE_MAIL").toString().split(";");

message.setTo(rece);

if(mailMap.get("REF_MAIL")!=null && mailMap.get("RETE_MAIL")!=""){

String rete[]=mailMap.get("REF_MAIL").toString().split(";");

message.setCc(rete);

}

if(mailMap.get("HIDDEN_MAIL")!=null && mailMap.get("HIDDEN_MAIL")!=""){

String hidden[]=mailMap.get("HIDDEN_MAIL").toString().split(";");

message.setBcc(hidden);

}

message.setSubject(mailMap.get("TITLE").toString());

String contents=mailMap.get("CONTENT").toString().replaceAll("&quot;","").replaceAll("<P>","<P STYLE=\"MARGIN: 0PX;\">");

if(imgList!=nul && imgList.isEmpty()){

for(Map imgInfo:imgList){

String imgFileNm=imgInfo.get("IMG_FILE_NM").toString();

contents=contents.replace(imgFileNm, "data:image/"+imgFileNm.substring(imgFileNm.lastIndexOf(".")+1)+";base64, "+imgInfo.get("IMG_BASE64").toString());

}

}

message.getMimeMessage().saveChanges();

StringBuffer sb=new StringBuffer();

StringBuffer encBuffer=new StringBuffer();

sb.append("\n<div id='a' style=\"background:url('");

sb.append("http://aaa/main/receiveMDN.do?data=");

encBuffer.append("from=");

encBuffer.append(mailMap.get("SENDER_MAIL").toString());

encBuffer.append("&mid=");

encBuffer.append(URLEncoder.encode(message.getMimeMessage().getMessageID().replaceAll("<","").replaceAll(">",""),"UTF-8"));

encBuffer.append("&to=");

encBuffer.append(rece[0].toString());

sb.append(URLEncoder.encode(SecureUtil.encrypt(SymmetricCrypt.AES, "1234567890123456",encBuffer.toString()),"UTF-8"));

sb.append("')\>");

int bodyInt=contents.toUpperCase().indexOf("<BODY");

String firstCont=contents.substring(0,bodyInt);

String listCont=contents.substring(bodyInt).replaceFirst(">",">"+sb.toString());

content=firstContent+listContent;

message.setText(content, true);

//첨부파일

if(fileList!=null && !fiileList.isEmpty()){

for(Map fileMap:fileList){

String pathFile=fileMap.get("pathFile").toString();

FileDataSource fds=new FileDataSource(pathFile);

String oriFileNm=fileMap.get("oriFileNm").toString();

message.addAttachment(MimeUtility.encodeText(oriFileNm,"UTF-8","B"),fds);

}

}

webMailSender.send(msg);

resultMap.put("mId",msg.getMessageID());

return resultMap;

}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함