자바 첨부파일 포함 메일 보내기
@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(""","").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;
}