메일 보내기 / mail / emaip / SMTP / gmail / 파일첨부 / file / 구글 / 전자정부프레임워크 | egovframework
2016. 1. 5. 16:43ㆍframework/egovframework
전자정부프레임워크에서 제공해 주는 mail 서비스 중
파일첨부하여 메일 보내기 기능을 정리하였다.
※ 하루동안 보내기 횟수 제한과 첨부파일의 용량의 제한이 있을 것으로 예상되며
정확한 정보는 찾지 못했다.
서비스 구현단에서 직접 처리해야 할 것 같다.
maven 사용
jdk 1.6
eGovFramework 2.7
1. 메이븐 추가
<!-- egovframework.rte.util.mail -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.3.2</version>
</dependency> |
cs |
2. main class 작성
public class MailSample {
public static void main(String args[]) {
MailVO mailVO = new MailVO();
mailVO.setFilePath("D:\\xxxx.png");
mailVO.setFileName("xxxx.png");
mailVO.setFromMail("test@gmail.com");
mailVO.setFromMailNm("나");
mailVO.setMailMsg("내용입니다. test 입니다.");
mailVO.setTitle("제목입니다.");
MailUtil.mailSend(mailVO);
}
} |
cs |
3. VO class 작성
public class MailVO {
// SMTP 값들 (수정 불가)
private String smtp = "smtp.gmail.com";
private int smtpPort = 465;
private String smtpEmail = "구글 계정";
private String smtpEmailPw = "구글 계정 비밀번호";
// 받는 사람 (수정 불가)
private String[] addToMail = {"받는사람들"};
//////////////////////////////////////////////////////////////////////////////
// 메일 전송에 필요한 값들
private String filePath; // 파일경로
private String fileName; // 파일명
private String description = "파일 설명"; // 파일 설명
private String title = "메일 제목."; // 메일 제목
private String fromMail; // 보내는 사람 메일 주소
private String fromMailNm; // 보내는 사람
private String mailMsg; // 메일 내용
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFromMail() {
return fromMail;
}
public void setFromMail(String fromMail) {
this.fromMail = fromMail;
}
public String getFromMailNm() {
return fromMailNm;
}
public void setFromMailNm(String fromMailNm) {
this.fromMailNm = fromMailNm;
}
public String getMailMsg() {
return mailMsg;
}
public void setMailMsg(String mailMsg) {
this.mailMsg = mailMsg;
}
public String getSmtp() {
return smtp;
}
public int getSmtpPort() {
return smtpPort;
}
public String getSmtpEmail() {
return smtpEmail;
}
public String getSmtpEmailPw() {
return smtpEmailPw;
}
public String[] getAddToMail() {
return addToMail;
}
}
|
cs |
4. 실행 class 작성
public class MailUtil {
private static String MAIL_CHARSET = "euc-kr";
/** 메일보내기
* ItoCommunityVO
*
* @param itoCommunityVO
* @return true : SUCCESS / false : FAIL
*/
public static String mailSend(MailVO mailVO){
String msg = "";
String filePath = mailVO.getFilePath(); // 파일 경로
String fileName = mailVO.getFileName(); // 파일명
String description = mailVO.getDescription(); // 파일 설명
String fromMail = mailVO.getFromMail(); // 보내느 사람
String fromMailNm = mailVO.getFromMailNm(); // 보내는 사람 이름
String title = mailVO.getTitle(); // 제목
String[] addToMail = mailVO.getAddToMail();
if(isEmpty(fromMail)){
msg = "FAIL";
return msg;
}
String mailMsg = ""; // 메일 내용은 컨트롤러에서 만들어서 온다.
mailMsg += mailVO.getMailMsg(); // 메일 내용
try {
// 기본 메일 정보를 생성합니다
MultiPartEmail email = new MultiPartEmail();
// 파일이 있는지 검사
if(!isEmpty(filePath) && !isEmpty(fileName)){
// 첨부할 attachment 정보를 생성합니다
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(filePath);
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription(description);
attachment.setName(fileName);
// 생성한 attachment를 추가합니다
email.attach(attachment);
}
email.setCharset(MAIL_CHARSET);// 한글 인코딩
email.setFrom(fromMail, fromMailNm); // 보내는 사람
email.addReplyTo(fromMail, fromMailNm); // 답장 받을 메일 설정
email.setSubject(title); // 메일 제목
email.setMsg(mailMsg); // 메일 내용
email.addTo(addToMail); // 받는사람
// 기본 메일 정보를 생성합니다 (SMTP서버의 기본정보를 셋팅)
email.setHostName(mailVO.getSmtp());
email.setSSL(true);
email.setSmtpPort(mailVO.getSmtpPort());
// SMTP Server 정보 (현재 구글 메일 SMTP 사용중
email.setAuthentication(mailVO.getSmtpEmail(), mailVO.getSmtpEmailPw());
// 메일을 전송합니다
email.send();
msg = "SUCCESS";
} catch (EmailException e) {
e.printStackTrace();
msg = "FAIL";
}
return msg;
}
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
}
|
cs |
상세한 내용 및 일반 메일, html 이메일 보내기, url 첨부 이메일 보내기는 출처를 참고
출처 : http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:fdl:mail#예제_sample_실행
'framework > egovframework' 카테고리의 다른 글
PMD / Code Inspection / | egovframework (0) | 2016.01.05 |
---|---|
maven / 메이븐 / jar 추출 / jar 꺼내기 / libraries 추출 / 라이브러리 | egovframework (0) | 2016.01.05 |
interceptor / 인터셉터 | egovframework (0) | 2016.01.05 |
eGovFrameTemplates CRUD 자동생성 | egovframework (0) | 2016.01.05 |