'나누미넷'에 해당되는 글 1건

  1. 2008.04.01 나누미넷 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>
<%
 }
%>


빨간색 부분만 잘 보면 될듯..

메일솔루션마다 차이는 있을듯 한데
이건 나누미넷에 맞춰진것..

Posted by [czar]
,