른록노트
[JAVA] 메일 발송, 파일 전송(base 64) 본문
@lib
javax.mail-1.1.7.jar
@방법
Properties p = Sysstem.getProperties();
p.put("mail.smtp.host", host);
p.put("mail.smtp.port", port);
p.put("mail.smtp.auth", "true"); //host smtp 서버의 설정에 따라 다름
p.put("mail.smtp.ssl.enable", "true"); //host smtp 서버의 설정에 따라 다름
p.put("mail.smtp.ssl.trust", host);
Session session = Session.getDefaultInstance(p, new javax.mail.Authenticator(){
Protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(id,pass);
}
});
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(id));
String addrArr = mailTo.replaceAll(";",",");
Address[] parse = InternetAddress.parse(addrArr);
message.setSentDate(new Date());
message.setHeader("Content-Type","text/html");
message.setRecipients(Message.RecipientType.TO, parse);
message.setSubject(subject,"UTF-8");
if("".equals(fileName) || fileName == null){
//첨부파일 없을 경우
message.setText(content,"UTF-8");
//message.setContent(html, "text/html; charset=utf-8"); 태그포함 html 문서 메일로 전송
}else{
//첨부파일 있을 경우 (base64)
BodyPart body = new MimeBodyPart();
BodyPart attachment = new PreencodedMimeBodyPart("base64");
attachment.setFileName(MimeUtility.encodeText(fileName, "euc-kr","B")); //한글 파일명 처리
attachment.setText(fileContent);
body.setText(content); //일반텍스트
//body.setContent(html, "text/html; charset=utf-8"); 태그포함 html 문서 메일로 전송
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(body);
multipart.addBodyPart(attachment);
message.setContent(multipart, "text/plain; charset=UTF-8");
}
Transport.send(message);
}catch(Exception e){
e.printStackTrace();
}
@참고사이트
https://www.codota.com/code/java/methods/javax.mail.internet.MimeBodyPart/setContent