%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ page import="javax.mail.Transport" %>
<%@ page import="javax.mail.Message" %>
<%@ page import="javax.mail.internet.InternetAddress" %>
<%@ page import="javax.mail.Address" %>
<%@ page import="javax.mail.internet.MimeMessage" %>
<%@ page import="javax.mail.Session" %>
<%@ page import="javax.mail.Authenticator" %>
<%@ page import="java.util.Properties" %>
<%@ page import="utility.SMTPAuthenticator" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.GregorianCalendar" %>
<%
String subject = request.getParameter("subject")==null?"":request.getParameter("subject");
String content = request.getParameter("content")==null?"":request.getParameter("content");
String from = request.getParameter("from")==null?"":request.getParameter("from"); //보내는 사람
String to = request.getParameter("to")==null?"":request.getParameter("to"); //받는 사람
String lo = request.getParameter("location");
String client_name = request.getParameter("client_name")==null?"":request.getParameter("client_name");//고객명
String service_code = request.getParameter("service_code")==null?"":request.getParameter("service_code");//service_code
if(from.equals("") || to.equals("") || content.equals("") || subject.equals("")){
{
System.out.println("메일 전송 실패");
String script="";
out.print(script);
}
}else{
// 프로퍼티 값 인스턴스 생성과 기본세션(SMTP 서버 호스트 지정)
//정보를 담기 위한 객체 생성
Properties props = new Properties();
/*
SMTP 서버의 계정설정
NAVER와 할 경우 smtp.naver.com
GOOGLE로 할 경우 smtp.gmail.com
*/
props.put("mail.smtp.host","smtp.gmail.com");//
//이하 props 정보는 수정하지 말것(구글 네이버 동일함)
props.put("mail.smtp.port", "465");//포트번호 설정(465)
props.put("mail.smtp.starttls.enable","true"); //뭔가 사용가능하도록 설정함
props.put("mail.smtp.auth","true");//위와 동
props.put("mail.smtp.debug","true");//디버그 기능 사용
props.put("mail.smtp.socketFactory.port","465");//socketFactory의 포트를 465로 설정
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");//socketFactory의 클래스 위치 설정
props.put("mail.smtp.socketFactory.fallback","false");//모르겠다.
//설정 끝
FileWriter fw=null;
try
{
Authenticator auth = new SMTPAuthenticator();
Session ses = Session.getInstance(props,auth);
//메일 전송시 상세한 상황을 콘솔에 출력한다.
ses.setDebug(true);
MimeMessage msg = new MimeMessage(ses);
//제목설정
subject = new String(subject.getBytes("8859_1"),"utf-8");
msg.setSubject(subject,"utf-8");
//보내는사람의 메일주소
Address fromAddr = new InternetAddress(from);
msg.setFrom(fromAddr);
//받는사람의 메일주소
Address toAddr = new InternetAddress(to);
msg.addRecipient(Message.RecipientType.TO, toAddr);
//메세지 본문의 내용과 형식, 캐릭터 셋 설정
String content2 = new String(content.getBytes("8859_1"),"utf-8");
msg.setHeader("content-type", "text/html; charset=utf-8");
msg.setContent(content2, "text/html; charset=utf-8");
Transport.send(msg);
/*메일저장*/
String loca = "";
if(lo.equals("IdcDepositNonPaymentList"))
loca="window.location='IdcDepositNonPaymentList.dep';\n";
else if(lo.equals("IdcReSendMailList"))
loca="window.location='IdcReSendMailList.dep';\n";
else if(lo.equals("bill"))
loca="history.go(-2);\n";
System.out.println("loca : " + loca);
System.out.println("lo : " + lo);
Calendar cal = Calendar.getInstance();
String saveDirectory = this.getClass().getResource("").getPath()+"../../../../../../../wtpwebapps/idcProject/SendMailFolder/";
saveDirectory = saveDirectory.replaceAll("%20", " ");
String gettime =cal.getTime().toString();
gettime = gettime.replaceAll(" ", "_");
gettime = gettime.replaceAll(":","_");
String client_name2 = new String(request.getParameter("client_name").getBytes("8859_1"),"utf-8");
String path = saveDirectory+"_"+client_name2+"_"+gettime+".txt";
fw = new FileWriter(path);
fw.write(content2);
String sendData = "service_code=" + service_code + "&client_name=" + client_name2 + "&filepath="+path;
String jso = "IdcSendMailSaveJSONCmd.jso";
String script ="\n";
script+="";
out.print(script);
}
catch(Exception mex)
{
mex.printStackTrace();
String script="";
out.print(script);
return;
}
finally
{
fw.close();
//request.getSession().removeAttribute("content");
}
}
%>