실행 환경 이클립스 FTP Remote
1. mail.jar, activation.jar 다운 및 lib에 넣어주기 (참고 블로그에서 다운가능 or 메이븐)
2. 사용할 smtp 메일 사이트 설정(naver, daum, 등등 여러가지 있는듯)
메일 설정에서 smtp를 사용으로 설정해야함. 거기에서 port 번호 등 정보를 얻을 수 있다.
3. jsp 작성(변수를 잘 확인하고 사용하길 바람)
<%@ page import="java.util.Map"%>
<%@ page import="java.util.List"%>
<%@ page import="java.util.Properties"%>
<%@ page import="javax.mail.Message"%>
<%@ page import="javax.mail.MessagingException"%>
<%@ page import="javax.mail.PasswordAuthentication"%>
<%@ page import="javax.mail.Session"%>
<%@ page import="javax.mail.Transport"%>
<%@ page import="javax.mail.internet.InternetAddress"%>
<%@ page import="javax.mail.internet.MimeMessage"%>
<%@ page import="javax.mail.Address"%>
<%@ page import="javax.mail.Authenticator"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
String type = "";
String title = "";
String name = "";
String tell = "";
String from = "보내는 email(smtp 서버 id사용)";
String to = "받는 email";
String subject = "";
String host = "smtp.naver.com"; // 사용하는 smtp 서버
Properties p = new Properties(); // 정보를 담을 객체
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host",host);
p.put("mail.smtp.port", "587"); //naver : 587
p.put("mail.smtp.starttls.enable", "true");
p.put("mail.smtp.auth", "true");
p.put("mail.smtp.ssl.enable", "true"); // 이 부분을 넣으니 daum smtp도 잘 작동함
p.put("mail.smtp.ssl.trust", host); // 이 부분을 넣으니 daum smtp도 잘 작동함
Session ses = Session.getInstance(p, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("smtp ID", "smtp PW");
}
});
try{
MimeMessage msg = new MimeMessage(ses); // 메일의 내용을 담을 객체
msg.setSubject(subject); // 제목
StringBuffer buffer = new StringBuffer();
buffer.append("유형 : ");
buffer.append(type+"<br>");
buffer.append("제목 : ");
buffer.append(title+"<br>");
buffer.append("이름 : ");
buffer.append(name+"<br>");
buffer.append("연락처 : ");
buffer.append(tell+"<br>");
Address fromAddr = new InternetAddress(from);
msg.setFrom(fromAddr);
out.println(buffer);
Address toAddr = new InternetAddress(to);
msg.addRecipient(Message.RecipientType.TO, toAddr); // 받는 사람
msg.setContent(buffer.toString(), "text/html;charset=UTF-8"); // 내용
Transport.send(msg); // 전송
out.print("message sent successfully...");
} catch(Exception e){
e.printStackTrace();
return;
}
%>
3. 잘 실행되면 메일 확인가능하다...(네이버랑 다음이 조금 다른거 같다. )
참고 블로그 : [1] https://hunit.tistory.com/306
[2] https://yoon-developer.tistory.com/13