java를 이용해서 email을 보내는 방법은 아래와 같다. 다만 선행되어야 하는 사항은 필요한 라이브러리를 함께 설치하는 것이 되겠다.
1. Apahe Commons Email
http://jakarta.apache.org/site/downloads/downloads_commons-email.cgi
2. javamail
http://java.sun.com/products/javamail/downloads/index.html
3. JavaBeans Activation Framework
http://java.sun.com/products/javabeans/glasgow/jaf.html
4. smtp daemon
http://www.jsmtpd.org
만약에 PC에 smtp가 설치되어 있지 않다면 이것을 받아서 적당한 곳에 압축을 풀어준후에 etc\jsmtpd-plugin-config.xml의 dnsServers를 실제 사용하고 있는 dns ip로 변경을 해준다. 그래야 도메인명으로 email을 보낼수 있다(당연하지만...).
위의 것들을 다운 받아서 적당한 곳에 설치한다.
SendMaiil.java
package mail;
import java.net.URL;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
public class SendMail {
public static void main(String[] args) {
try {
//파일을 첨부할때
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
//attachment.setDescription("Apache logo1");
attachment.setName("asf_logo_wide.gif");
MultiPartEmail email = new MultiPartEmail();//파일을 함께 보낼때
//SimpleEmail email1 = new SimpleEmail(); //파일없이 메일만 보낼때
email.setCharset("euc-kr"); //한글을 사용할때
email.setHostName("localhost");
email.addTo("받을사람@받을서버.com", "홍길동");
email.setFrom("보낸사람@보낸서버.com");
email.setSubject("한글 메세지");
email.setMsg("한글이 잘되나???");
email.attach(attachment);
String retMessage = email.send();
System.out.println("send:" + retMessage);
} catch(Exception e) {
e.printStackTrace();
}
}
}
'IT > JAVA' 카테고리의 다른 글
Java ProcessBuilder, Runtime,, linux 에서 사용하기 (0) | 2013.12.21 |
---|---|
NIO 이용 파일 카피 (0) | 2013.12.21 |
자바 서버 소켓 멀티 쓰레드 (0) | 2013.12.21 |
EJB (0) | 2013.12.21 |
file download 시 stream (0) | 2013.12.21 |