String mailProtocol = "smtp";


String mailHost = "smtp.gmail.com";


String mailPort = "587";


String mailId = "abc@gmail.com"; // 구글계정


String mailPassword = "abc"; // 구글계정 비밀번호 



String fromName = "보내는사람이름";


String fromEmail = "abc@gmail.com"; // 보내는 사람 메일


String toName = "받는사람이름";


String toEmail = "abc@daum.net"; // 받는사람메일


String mailTitle = "메일 타이틀입니다.";


String mailContents = "메일 내용입니다.";


String debugMode = "false";


String authMode = "true";



try {



boolean debug = Boolean.valueOf(debugMode).booleanValue();




Properties mailProps = new Properties();


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


mailProps.setProperty("mail.transport.protocol", mailProtocol); 


mailProps.put("mail.debug", debugMode);


mailProps.put("mail.smtp.host", mailHost);


mailProps.put("mail.smtp.port", mailPort);


mailProps.put("mail.smtp.connectiontimeout", "5000");


mailProps.put("mail.smtp.timeout", "5000");  


mailProps.put("mail.smtp.auth", authMode);



Session msgSession = null;


if(authMode.equals("true")) {


        Authenticator auth = new MyAuthentication(mailId, mailPassword);


msgSession = Session.getInstance(mailProps, auth);


} else {


msgSession = Session.getInstance(mailProps, null); 


}



msgSession.setDebug(debug);



MimeMessage msg = new MimeMessage(msgSession);


msg.setFrom(new InternetAddress(fromEmail, fromName));


msg.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail, toName));


msg.setSubject(mailTitle);


msg.setContent(mailContents, "text/html; charset=euc-kr");



// 스태틱함수로 직접 보내지 않고 객체를 이용해서 보내고 객체를 닫아준다. 


Transport t = msgSession.getTransport(mailProtocol);


try {


t.connect();


t.sendMessage(msg, msg.getAllRecipients());


} finally {


  t.close();


}


  


} catch(Exception e) {


e.printStackTrace();


}


}





위 소스로 메일 발송시

hanmail, daum 메일만 메일제목에 _(언더바)가 나오는 현상이 발생했다.

원인은

msg.setSubject(mailTitle);

의 설정에서 좀더 엄격하게 해 주어야 하는데 그걸 한메일 서버가 인식을 제대로 못하는거 같다.


소스를 아래와 같이 수정하니 정상적으로 발송됐다.


msg.setSubject( MimeUtility.encodeText( mailTitle, "utf-8", "B" ) );





자바로 메일 보내기



+ Recent posts