티스토리 뷰
728x90
[MailSender.java]
import java.io.*;
import java.io.*;
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;
public class MailSender extends Authenticator {
private String mailhost = "smtp.gmail.com";
private String user;
private String password;
private Session session;
public MailSender(String user, String password) {
this.user = user;
this.password = password;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
if(recipients.indexOf(',') > 0) {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
} else {
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
}
Transport.send(message);
}
public class ByteArrayDataSource implements DataSource {
private byte[] data;
private String type;
public ByteArrayDataSource(byte[] data, String type) {
super();
this.data = data;
this.type = type;
}
public ByteArrayDataSource(byte[] data) {
super();
this.data = data;
}
public void setType(String type) {
this.type = type;
}
public String getContentType() {
if(type == null) {
return "application/octet-stream";
} else {
return type;
}
}
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(data);
}
public String getName() {
return "ByteArrayDataSource";
}
public OutputStream getOutputStream() throws IOException {
throw new IOException("Not Supported");
}
}
}
[실제 사용 클래스]
String user = "G메일 계정"
String password = "암호"
MailSender sender = new MailSender(user, password);
String subject = "보낼 제목";
String body = "보낼 본문 내용";
String sender = "보내는 메일 주소";
String recipients = "받는 메일 주소";
try {
sender.sendMail(subject, body, sender, recipients);
} catch(Excpetion e) {}
위 코드는 구글 G메일 세팅이다..
네이버나 다음의 smtp를 사용해서 보내는 것도 실험해봐야 되는데 아직 못해보고 있다..
인터넷에 다른 소스를 찾아보면 매우 간단하게 표현된 것들이 꽤 있던데 이상하게 계속 안먹혀서 결국 이렇게 코딩을 했다
위 소스를 사용하려면 activation.jar 와 mail.jar 를 라이브러리로 지정해줘야 한다
출처 : 어디더라;;
'프로그래밍 > Java' 카테고리의 다른 글
유용한 날짜 관련 유틸 메소드 (2) | 2012.01.03 |
---|---|
[Java] DB(MySQL, Oracle, MS-SQL) 접속 (2) | 2011.09.21 |
[Java] URLConnection, URLEncoder, URLDecoder (2) | 2011.09.15 |
[Java] 자바에서 웹문서 읽어오는 법 (0) | 2011.09.15 |
[Java] 랜덤 점심 메뉴 고르기 프로그램 (2) | 2011.07.25 |
TAG
- 랜덤
- 여성가족부
- 동양인
- 오류
- jstl
- 스트럿츠
- 페이지 이동
- mvc
- 특수문자
- 주피터 노트북
- Android
- 파이썬
- 구매 가이드
- ibatis
- window
- 서양인
- MacOS
- 데이터베이스
- 자바스크립트
- 테이블
- JSP
- 스프링
- 기본
- JavaScript
- 안드로이드
- 시각 차이
- 코멧
- EL
- 함수
- struts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
- Total
- Today
- Yesterday