- 2019/09/20 메일보내기2019년 09월 20일
- 조별하
- 작성자
- 2019.09.20.:32
※ 지금배우는 교육과정에는 메일서버 구축을 배우지 않는다.
KT 호스팅 사이트 http://www.kthosting.co.kr
[01] 자바 메일 보내기
더보기- 문의 메일 보내기, 쇼핑몰에 상품 구매 후에 구매완료되었습니다등
자바코드를 이용해서 메일을 보낸다.- 메일 서버(POP3/SMTP) 구축후, 메일 라이브러리를 통해서
간편하게 메일을 전송할수 있는 JSP파일을 작성한다.
별도로 메일 서버는 구축하지 않고 카페24 메일 서버를 활용할 예정.- 카페24 유료 회원이면 카페24에서 제공하는 메일 서버를 계정 인증후의 3개까지 사용할 수 있다.(유료전환)
http://www.cafe24.com -> 나의 서비스 관리 -> 이메일계정 추가/삭제- 카페24 메일 서버 주소 (POP3/SMTP서버): mw-002.cafe24.com
- 카페24 메일 서버 인증 아이디: soldesk@pretyimo.cafe24.com
비밀번호: soldesk6901
- JAF(JavaBeans Activation Framework)와 JavaMail 라이브러리가 필요
1) JAF 다운로드 jaf-1_1_1.zip -> activation.jar
http://www.oracle.com/technetwork/java/jaf11-139815.html2) javaMail 다운로드 javamail1_4_7.zip -> mail.jar
http://www.oracle.com/technetwork/java/javamail/javamail145-1904579.htmlJavaMail 1.5 -> http://www.oracle.com/technetwork/java/index-138643.html
다운로드 받은 mail.jar 와 activation.jar 를 /WEB-INF /lib 폴더에 복사해 주었다
메일 보내기
1. mailForm
이메일 폼: 받는 사람과 보내는 사람 제목 그리고 내용 textarea 로 해서 구성해 주었다
2. mailProc 메일 보내기 결과
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../header.jsp"%> <!-- 본문시작 mailForm.jsp --> <h3>* 메일 보내기 결과*</h3> <% //1) 메일서버(POP3/SMTP) //2) 1) 메일 서버에서 인증받은 계정과 비번이 있어야함 //3) 1) 과 2) 가 유효한지 검증 //4) 메일 보내기 %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
★ '1) 메일 서버에서 인증받은 계정과 비번이 있어야함' 을 net.utility안에 class 를 만들어서 사용할 것이다
만드는 class명 Authenticator▶ 클래스를 만들어 주는데 빨간 박스는 클래스 단일상속만 가능, 파란 박스는 추상클래스 다중상속이 가능
▶ authenticator 를 상속받아 클래스를 생성해 준다.
MyAuthenticator
package net.utility; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class MyAuthenticator extends Authenticator { //사용하고자 하는 메일서버에서 인증받은 계정 비번 private PasswordAuthentication pa; public MyAuthenticator(){ pa=new PasswordAuthentication("soldesk@pretyimo.cafe24.com","soldesk6901"); } @Override protected PasswordAuthentication getPasswordAuthentication() { // TODO Auto-generated method stub return pa; } }//class end
mailProc
<%@page import="javax.mail.Session"%> <%@page import="net.utility.MyAuthenticator"%> <%@page import="javax.mail.Authenticator"%> <%@page import="java.util.Properties"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../header.jsp"%> <!-- 본문시작 mailForm.jsp --> <h3>* 메일 보내기 결과*</h3> <% //1) 메일서버(POP3/SMTP) String mailServer="mw-002.cafe24.com"; Properties props=new Properties(); props.put("mail.smtp.host",mailServer); props.put("mail.smtp.auth","true"); //2) 1) 메일 서버에서 인증받은 계정과 비번이 있어야함 Authenticator myAuth=new MyAuthenticator(); //3) 1) 과 2) 가 유효한지 검증 Session sess=Session.getInstance(props,myAuth); out.print("메일 서버 인증 성공!!!"); //4) 메일 보내기 %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
결과
<%@page import="javax.mail.Transport"%> <%@page import="java.util.Date"%> <%@page import="javax.mail.internet.MimeMessage"%> <%@page import="javax.mail.Message"%> <%@page import="javax.mail.internet.InternetAddress"%> <%@page import="net.utility.Utility"%> <%@page import="javax.mail.Session"%> <%@page import="net.utility.MyAuthenticator"%> <%@page import="javax.mail.Authenticator"%> <%@page import="java.util.Properties"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../header.jsp"%> <!-- 본문시작 mailForm.jsp --> <h3>* 메일 보내기 결과*</h3> <% //1) 메일서버(POP3/SMTP) String mailServer="mw-002.cafe24.com"; Properties props=new Properties(); props.put("mail.smtp.host",mailServer); props.put("mail.smtp.auth","true"); //2) 1) 메일 서버에서 인증받은 계정과 비번이 있어야함 Authenticator myAuth=new MyAuthenticator(); //3) 1) 과 2) 가 유효한지 검증 Session sess=Session.getInstance(props,myAuth); //out.print("메일 서버 인증 성공!!!"); //4) 메일 보내기 try{ request.setCharacterEncoding("UTF-8"); String to = request.getParameter("to").trim(); String from = request.getParameter("from").trim(); String subject = request.getParameter("subject").trim(); String content = request.getParameter("content").trim(); //엔터 및 특수문자 변경 content= Utility.convertChar(content); //메일 관련 메세지 작성 Message msg= new MimeMessage(sess); //받는사람 InternetAddress[] address={ new InternetAddress(to) }; /* 수신인 여러명 InternetAddress[] address={ new InternetAddress(to1), new InternetAddress(to2), new InternetAddress(to3) } */ msg.setRecipients(Message.RecipientType.TO, address); //보내는 사람 msg.setFrom(new InternetAddress(from)); //메일 제목 msg.setSubject(subject); //메일 내용 msg.setContent(content,"text/html; charset=UTF-8"); //보낸 날짜 msg.setSentDate(new Date()); //메일 전송 Transport.send(msg); out.print(to+"님에게 메일이 발송되었습니다."); }catch(Exception e){ out.println("<p>메일 전송 실패!!"+e+"</p>"); out.println("<p><a href='javasctipt:history.back();'>[다시시도]</a><p>"); } %> <!-- 본문 끝 --> <%@ include file="../footer.jsp"%>
결과
'JAVA 교육 > myWeb' 카테고리의 다른 글
2019/09/02 프로젝트 (intro&template) (0) 2019.11.22 2019/10/01 EL과 JSTL (0) 2019.10.01 2019/09/19 myWeb 포토 갤러리 (0) 2019.09.19 2019/09/18 [파일 첨부] (0) 2019.09.18 2019/09/17 myweb 쿠키(아이디 저장) (0) 2019.09.17 다음글이전글이전 글이 없습니다.댓글