이메일 전송하기

2019. 4. 4. 12:45JavaScript

 

#1 라이브러리 설정하기

https://mvnrepository.com에서 필요한 라이브러리 다운로드

#2 HTML

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>관리자 이메일 쓰기</title>

</head>

<body>

<h1>SimpleEmail</h1>

<form action="simpleEmail.jsp" method="post">

받는사람 이메일주소: <input type="text" name="receiver"><br>

메일 제목: <input type="text" name="subject"><br>

메일 내용: <textarea rows="7" cols="40" name="content"></textarea><br>

<button type="submit">전송</button>

</form>

</body>

</html>

#3 JSP

<%@page import="org.apache.commons.mail.SimpleEmail"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

/*

메일 전송 라이브러리 준비

CommonsEmail : commons-email-1.2.jar

JavaMail : mail.jar

JAF(java activation framework) : activation.jar

*/

// 한글처리

request.setCharacterEncoding("UTF-8");

// 파라미터 가져오기

String receiver = request.getParameter("receiver");

String subject = request.getParameter("subject");

String content = request.getParameter("content");

 

long beginTime = System.currentTimeMillis();// 시작시간 설정

 

SimpleEmail simpleEmail = new SimpleEmail(); // 추가된 라이브러리

 

// SMTP 서버 연결 설정

// SMTP 서버를 daum으로 했기 때문에 daum 계정으로 접속

simpleEmail.setHostName("smtp.daum.net");

simpleEmail.setSmtpPort(465); // 465(SSL방식) or 587(TLS방식)

simpleEmail.setAuthentication("id", "password"); // 아이디,패스워드

simpleEmail.setSSLOnConnect(true); // SSL 접속 활성화

simpleEmail.setStartTLSEnabled(true); // TLS 접속 활성화

 

// 보내는 사람=> daum으로 SMTP 서버로 연결했기 때문에 보내는 메일도 daum이 되어야한다.

simpleEmail.setFrom("whdgus4501@daum.net","테스터","UTF-8");

// 받는 사람

simpleEmail.addTo(receiver,"받는 사람","UTF-8");

 

// (받는사람)참조인 설정

//simpleEmail.addCc(receiver,"참조인 이름","UTF-8");

// 받는사람 (숨은 참조인) 설정

//simpleEmail.addBcc(receiver,"숨은참조인 이름","UTF-8");

 

// 이메일에 추가될 내용 설정

simpleEmail.setSubject(subject); //제목

simpleEmail.setMsg(content);

 

//이메일 전송

String str = simpleEmail.send();

long execTime = System.currentTimeMillis()-beginTime; // 실행시간

%>

<script>

alert('메일 전송이 걸린 시간:' <%=execTime %>);

history.back();

</script>

****** IMAP/POP3 설정을 해야 외부에서 EMAIL을 보낼 수 있다.

*********전송시간 감축을 위한 Thread 사용