개발속이야기/Java

JSP TAG 메일 예제

스토리지기 2018. 1. 2. 16:58

javax.mail.jar 포함하여사용




SendMailTagLib.html



<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

</head>

<body>

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

from : <input type="text" size="20" name="from"><br/><br/>

to: <input type="text" size="30" name="to"><br/><br/>

Subject:<input type="text" size="40" name="subject"><br/><br/>

Msg : <textarea name="contents" rows="20" cols="38"></textarea><br/><br/>

<input type="submit" value="Submit">

</form>


</body>

</html>





SendMailTagLib.tld

<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Exeample TLD</short-name>
<tag>
<name>sendmail</name>
<tag-class>com.oraclejava.SendMailTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>from</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>to</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>subject</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>contents</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>




SendMailTag.java



package com.oraclejava;


import java.io.IOException;


import java.net.PasswordAuthentication;


import java.time.chrono.MinguoEra;


import java.util.Properties;


import javax.mail.Message;


import javax.mail.Session;


import javax.mail.Transport;


import javax.mail.internet.InternetAddress;


import javax.mail.internet.MimeMessage;


import javax.servlet.jsp.JspException;


import javax.servlet.jsp.JspWriter;


import javax.servlet.jsp.tagext.SimpleTagSupport;


import sun.security.krb5.internal.Authenticator;


public class SendMailTag extends SimpleTagSupport {


private String from="";


private String to="";


private String subject="";


private String contents="";


private String result="";


public String getFrom() {


return from;


}


public void setFrom(String from) {


this.from = from;


}


public String getTo() {


return to;


}


public void setTo(String to) {


this.to = to;


}


public String getSubject() {


return subject;


}


public void setSubject(String subject) {


this.subject = subject;


}


public String getContents() {


return contents;


}


public void setContents(String contents) {


this.contents = contents;


}


public String getResult() {


return result;


}


public void setResult(String result) {


this.result = result;


}


@Override


public void doTag() throws JspException, IOException {


// TODO Auto-generated method stub


super.doTag();


sendMail();


JspWriter out = getJspContext().getOut();


out.println(result);


}


public void sendMail() {


try {


Properties property = new Properties();


property.put("mail.smtp.auth", "true");


property.put("mail.smtp.starttls.enable", "true");


property.put("mail.smtp.host", "smtp.gmail.com");


property.put("mail.smtp.port", "587");


property.put("mail.smtp.debug", "true");


Session session = Session.getInstance(property,


new javax.mail.Authenticator() {


protected javax.mail.PasswordAuthentication getPasswordAuthentication(){


return new javax.mail.PasswordAuthentication("gmailID", "password");


}


});


MimeMessage mimeMessage = new MimeMessage(session);


InternetAddress toAddress = new InternetAddress(to, to);


mimeMessage.setRecipient(Message.RecipientType.TO, toAddress);


InternetAddress fromAddress = new InternetAddress(from, from);


mimeMessage.setFrom(fromAddress);


mimeMessage.setSubject(subject);


mimeMessage.setText(contents);


Transport.send(mimeMessage);


result="메일이 성공적으로 전송되었습니다.";


}


catch (Exception e) {


// TODO: handle exception


System.out.println(e);


result = "편지가 배달되지 못했습니다.";


}


}


}




SendMailTagLib.jsp


<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<%@ taglib uri="/WEB-INF/SendMailTagLib.tld" prefix="mail" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>


<mail:sendmail subject='<%=request.getParameter("subject") %>' contents='<%=request.getParameter("contents") %>' 

to='<%=request.getParameter("to") %>' from='<%=request.getParameter("from") %>'/>


</body>

</html>