일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql
- eclipse hotdeploy
- extundelete
- ajax async
- checkbox 값처리
- remote ip
- KOSA
- 폐업자에 대한 업종등의 정보내역
- TM128
- map api v3
- jquery selectbox change
- group by max
- partition by
- ant path pattern
- 접속ip
- update
- ajax 동기방식처리
- http https
- String 배열
- String[]
- 한국소프트웨어산업협회
- 2개 테이블
- multipart
- 첫주 및 마지막주 날짜 전체 포함
- Oracle
- 아이폰키보드
- mysql trigger
- 주소 좌표변환
- 서브쿼리
- 컴퓨터 드라이버
- Today
- Total
하은양 믿음군 효실맘 호홍홍집s
simpleemail 을 이용한 간단한 메일보내기 본문
http://javacan.tistory.com/107 : 참조
간단한 텍스트 메일 보내기
org.apache.commons.mail.SimpleEmail 클래스를 사용하면 일반 텍스트 메일을 발송할 수 있다. SimpleEmail 클래스를 사용해서 텍스트 메일을 발송하는 코드는 다음과 같다. (별다른 설명이 필요없을 정도로 간단하다.)
email.setCharset("euc-kr"); email.setHostName("mail.somehost.com"); // SMTP 서버를 지정
email.addTo("madvirus@empal.com", "최범균"); // 수신자를 추가
email.setFrom("madvirus@madvirus.net", "범균"); // 보내는 사람 지정
email.setSubject("텍스트 테스트 메일입니다."); // 메일 제목
email.setContent("테스트 메일의 내용입니다.", "text/plain; charset=euc-kr");
email.send(); // 메일 발송
위에서 주의할 코드는 굵게 표시한 부분의 코드이다. 먼저, email.setCharset("euc-kr")을 사용해서 메일의 캐릭터셋이 euc-kr 이라고 지정하고 있는데, 이를 표시하지 않으면 메일 제목이나 보내는 사람 이름등에 있는 한글이 깨지게 된다. 더 중요한 점은 email.setCharset("euc-kr")을 실행해도 메일 내용의 한글은 올바르게 처리되지 않는다는 점이다. 메일 내용에 포함된 한글을 올바르게 처리하기 위해서는 위 코드에서와 같이 email.setContent()를 실행할 때, 두번째 인자값으로 캐릭터셋을 지정해주어야 한다. (이를 지정하지 않으면 내용의 한글이 깨지므로 꼭 기억해야 한다.)
HTML 메일 보내기
HTML 형식으로 된 이메일을 보내는 방법은 텍스트 형식의 메일을 보내는 것과 매우 비슷하다. 차이점은 org.apache.commons.mail.HtmlEmail 클래스를 사용한다는 점이다. 다음 코드는 HtmlEmail 클래스를 사용하여 HTML 형식의 메일을 보내는 예제 코드이다.
email.setCharset("euc-kr");
email.setHostName("mail.somehost.com");
email.addTo("madvirus@empal.com", "최범균");
email.setFrom("madvirus@madvirus.net", "범균");
email.setSubject("HTML 테스트 메일입니다.");
email.setHtmlMsg("<html>아파치 로고 - <img src=\"http://www.apache.org/images/asf_logo_wide.gif\"></html>");
email.send();
SimpleEmail을 보내는 경우와 달리 email.setHtmlMsg()를 사용하여 메일 내용을 입력할 때 캐릭터셋을 별도로 지정하지 않아도 한글이 깨지지 않는다.
파일 첨부하기
파일을 첨부하기 위해서는 org.apache.commons.mail.EmailAttachment 클래스와 org.apache.commons.mail.MultiPartEmail 이메일을 사용하면 된다. EmailAttachment 클래스는 첨부할 파일을 지정할 때 사용하고, MultiPartEmail 이메일을 파일을 이메일에 첨부해주는 기능을 제공한다. 다음은 파일 첨부 예제 코드이다.
attachment.setPath("d:\\commons-email-1.0.zip");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("commons-email api");
attachment.setName("commons-email-1.0.zip"); // 파일의 이름을 지정
MultiPartEmail email = new MultiPartEmail();
email.setCharset("euc-kr");
email.setHostName("mail.somehost.com");
email.addTo("madvirus@empal.com", "최범균");
email.setFrom("madvirus@madvirus.net", "범균");
email.setSubject("첨부 파일 테스트 메일입니다.");
email.setMsg("이건 내용입니다.");
email.attach(attachment);
email.send();
EmailAttachment 객체를 생성한 뒤 email.attach()를 사용해서 첨부할 파일을 추가해주기만 하면 된다. 주의할 점은 1.0 버전의 Commons Email은 파일명을 한글로 전달할 경우, 파일명이 올바르게 전달되지 않고 깨져서 간단하는 점이다. (파일 자체는 올바르게 전송된다.) 따라서 1.0 버전의 Common Email을 사용하여 파일을 전송할 때에는 알파벳과 숫자로만 구성된 이름의 파일을 전송하도록 하자.) 실제 파일명은 한글이 포함되더라도, EmailAttachment.setName() 메소드를 사용해서 파일명을 변경해서 전송할 수도 있다.
앞서 살펴봤던 HtmlEmail 클래스는 MultiPartEmail 클래스를 상속받기 때문에 HtmlEmail 클래스를 사용할 때에도 attach() 메소드를 사용하여 파일을 첨부할 수 있다.
SMTP 인증 처리
SMTP 서버를 사용할 때에는 SMTP 인증이 필요한 경우도 있는데, 이럴 때에는 다음과 같이 setAuthentication() 메소드를 사용하면 된다.
email.setCharset("euc-kr");
email.setHostName("mail.somehost.com");
email.setAuthentication("madvirus", "password");
...
관련링크:
'가벼운 배움 > jsp' 카테고리의 다른 글
숫자를 한글로 표시하기 (0) | 2015.08.15 |
---|---|
공공-IPIN(G-PIN) 설치하기 2015년도 껏 (0) | 2015.08.05 |
파일다운로드 취약점관련 (0) | 2015.07.10 |
javac 인코딩 변경해서 Compile하기 (0) | 2015.07.09 |
poi를 이용한 엑셀파일 읽어오기 (0) | 2015.07.07 |