개발자의 끄적끄적

[java] 메일발송 소스 자바 메일 템플릿 html 여부 치환 실전 [펌] 본문

개발/java & jsp

[java] 메일발송 소스 자바 메일 템플릿 html 여부 치환 실전 [펌]

효벨 2020. 1. 2. 17:48
728x90
반응형

[java] 메일발송 소스 자바 메일 템플릿 html 여부 치환 실전 [펌]

 

자바에서 메일발송하는 부분을 구현하던중

 

html 형식으로 메일 전송할수 있는 내용을 참고하기위해

 

퍼왔습니다!

 

출처는 아래 명시했습니다!!

 

참고들 하세요!!

 

 

import java.util.*;

import javax.mail.*;

import javax.mail.internet.*;

 

/**

* @author 김성박(urstory@nownuri.net)

*

* J2SDK 1.4 이상에서 동작한다. String class의 replaceAll메소드 사용.

*

*/

public class SendMail {

   private String to;

   private String from;

   private String host;

   private String template;

   private String subject;

   private String msg;

   private boolean istext;

 

   public SendMail(String to, String from, String host, String subject, String msg, boolean istext){

      this(to, from, host, null, subject, msg, istext);   

   }

      

   /**

    * 메일을 보내기 위하여 정보를 초기화 한다.

    * @param to 받는 사람

    * @param from 보내는 사람

    * @param host 보내기 위한 메일 서버

    * @param template 메세지의 템플릿 --body-- 부분이 msg 로 치환된다.

    * @param subject 제목

    * @param msg 보내는 메일

    * @param istext 텍스트 메일일 경우 true, html형식일 경우 false

    */

   public SendMail(String to, String from, String host, String template, String subject, String msg, boolean istext){

      this.to = to;

      this.from = from;

      this.host = host;

      this.template = template;

      this.subject = subject;

      this.msg = msg;

      this.istext = istext;

   }

   

   /**

    * 메일을 전송한다.

    * @return 메일을 성공적으로 전송하였을 경우 true, 그렇지 않을 경우 false

    */

   public boolean send(){

      Properties props = new Properties();

      props.put("mail.smtp.host", host);

 

      Session sess = Session.getDefaultInstance(props, null);

 

      try {

         //      create a message

         Message message = new MimeMessage(sess);

         message.setFrom(new InternetAddress(from));

         InternetAddress[] address = {new InternetAddress(to)};

         message.setRecipients(Message.RecipientType.TO, address);

         message.setSubject(subject);

         message.setSentDate(new Date());

         

         if(template != null){

            msg = template.replaceAll("--body--", msg);

         }

         if(!istext)

            message.setContent(msg,"text/html; charset=euc-kr"); // HTML 형식

         else

            message.setText(msg); // TEXT 형식

 

         Transport.send(message);

      } catch (MessagingException mex) {

         System.out.println("error msg :" + mex.toString());

         return false;

      }       

      return true;

   }

 

   public static void main(String[] args) {

      //SendMail sendMail = new SendMail("받는사람email주소", "보내는사람email주소", "smtp 서버주소", null, "안녕하세요.", "안녕하세요. 이것은 본문 내용이에요.<h1>hello</h1>", false);

      SendMail sendMail = new SendMail("받는사람email주소", "보내는사람email주소", "smtp서버주소", "<table border=1><tr><td>--body--</td></tr></table>", "안녕하세요.", "안녕하세요. 이것은 본문 내용이에요.<h1>hello</h1>", false);

      

      if(sendMail.send())

         System.out.println("전송이 성공하였습니다.");

      else

         System.out.println("전송이 실패하였습니다.");

   }

 

 

출처 : http://gnujava.com/board/article_view.jsp?article_no=7053&menu_cd=17&board_no=4&table_cd=EPAR01&table_no=01

반응형
Comments