나누미넷 JAVA mail 세팅
보내는사람,받는사람 한글 정상이면
제목, 내용한글 깨지고
제목, 내용 한글 정상이면
보내는 사람, 받는 사람 한글 깨지고
대략 난감이다.
해결은
<%@ page contentType="text/html; charset=EUC-KR" import="java.util.*,javax.mail.*,javax.mail.internet.*,java.io.*" %>
<%
//request.setCharacterEncoding("EUC-KR");
Properties msgProperties = new Properties();
msgProperties.put("mail.smtp.host", "localhost");
//msgProperties.put("mail.mime.charset", "euc-kr");
Session msgSession = Session.getDefaultInstance(msgProperties, null);
try {
Enumeration params = request.getParameterNames();
while (params.hasMoreElements()) {
String name = (String) params.nextElement();
String value = request.getParameter(name);
out.println("[" + name + " = " + value + "]<br>");
}
MimeMessage msg = new MimeMessage(msgSession);
// 보내는 사람
String mailfrom_name = request.getParameter("from_name");
String mailfrom = mailfrom_name + "<" + request.getParameter("from_mail") + ">";
InternetAddress from = new InternetAddress(mailfrom);
msg.setFrom(from);
// 받는 사람
String mailto_name = request.getParameter("to_name");
String mailto = mailto_name + "<" + request.getParameter("to_mail") + ">";
InternetAddress to = new InternetAddress(mailto);
msg.setRecipient(Message.RecipientType.TO, to);
// 날짜
msg.setSentDate(new java.util.Date());//보내는 날짜 설정
// 제목
String title = request.getParameter("title");
msg.setSubject(new String(title.getBytes("iso-8859-1"), "euc-kr"));
// 내용 설정
String content = request.getParameter("content");
String tmpFile = "/member/email.html";
BufferedReader br = new BufferedReader(new FileReader(new File( request.getSession().getServletContext().getRealPath(tmpFile))));
StringBuffer sb = new StringBuffer();
String ch = null;
while ((ch = br.readLine()) != null) { // 파일에서 한문자(2바이트)씩 읽음
if (ch.indexOf("##CONTENT##") > -1) {
sb.append(ch.replaceAll("##CONTENT##", content));
}
else if (ch.indexOf("##TITLE##") > -1) {
sb.append(ch.replaceAll("##TITLE##", title));
}
else {
sb.append(ch);
}
}
msg.setContent( new String(sb.toString().getBytes("8859_1"),"euc-kr"), "text/html;\n\tcharset=\"ks_c_5601-1987\"" );
msg.setHeader("Content-Transfer-Encoding", "base64");
Transport.send(msg);
%>
<script>
alert('메일이 정상적으로 발송되었습니다.');
history.back();
</script>
<%
} catch (MessagingException e) {
out.println(e.getMessage());
} catch (Exception e) {
out.println("error : " + e.getMessage());
%>
<script>
alert('메일 발송이 실패하였습니다!');
history.back();
</script>
<%
}
%>
빨간색 부분만 잘 보면 될듯..
메일솔루션마다 차이는 있을듯 한데
이건 나누미넷에 맞춰진것..