광고 한 번씩 클릭해 주시면 글 쓰는데 큰 힘이 됩니다 (제발~)

IT/Java

구글계정이용 메일발송

ThinkTheStory 2021. 5. 17. 11:13
728x90

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;
import java.net.*;



 
 public static void sendMailSend(String recipients[], String subject, String message, String from) throws MessagingException {
  try{
   boolean debug = false;
   java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
   String SMTP_HOST_NAME = "smtp.gmail.com";
   
   //Properties 설정
   Properties props = new Properties();
   props.put("mail.transport.protocol", "smtp");
   props.put("mail.smtp.starttls.enable", "true");
   props.put("mail.smtp.host", SMTP_HOST_NAME);
   props.put("mail.smtp.auth", "true");
   //props.put("mail.smtp.connectiontimeout", "10000");
   //props.put("mail.smtp.timeout", "10000");
   props.put("mail.smtp.port", "465");
   props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
   
   Authenticator auth = new SMTPAuthenticator();
   Session session = Session.getDefaultInstance(props, auth);
   session.setDebug(debug);
   // create a message
   Message msg = new MimeMessage(session);
   // set the from and to address
   InternetAddress addressFrom = new InternetAddress(from);
   msg.setFrom(addressFrom);
   InternetAddress[] addressTo = new InternetAddress[recipients.length];
   if(recipients != null){
    for (int i = 0; i < recipients.length; i++) {
     addressTo[i] = new InternetAddress(recipients[i]);
    }
   }
   msg.setRecipients(Message.RecipientType.TO, addressTo);
   // Setting the Subject and Content Type
   msg.setSubject(subject);
   msg.setContent(message.toString(), "text/html; charset=euc-kr");
   Transport.send(msg);
   
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 
 
 /**
  *
  * 1. 패키지명 : 
  * 2. 타입명    : alarmMail.java
  * 3. 작성일    : 2013. 2. 18. 오후 1:58:06
  * 4. 작성자    : jt-laptop
  * 5. 설명       : 구글 사용자 메일 계정 아이디/패스 정보 
  *
  */
 private static class SMTPAuthenticator extends javax.mail.Authenticator {
  public PasswordAuthentication getPasswordAuthentication() {
   String username = "ㅁㅁㅁ@gmail.com"; // gmail 사용자;
   String password = "ㅁㅁㅁ"; // 패스워드;
   return new PasswordAuthentication(username, password);
  }
 }
 
 
 public static void sendEmail(String strType){
  ArrayList list = null;
  HashMap<String,String> hmap = new HashMap();
  String[] userInfo = null;
  String mailTitle = "";
  String mailContent = "";  
  
  
  try {

   //각 사용자 메일정보를 ㅁㅁㅁ.properties에서 받아온다.
   //구분자(&&&)를 이용해서 메일 정보를 나눈다
   userInfo = Util.getConfigValue("ㅁㅁㅁUserAlarm", "RECEIVE_USER_LIST").split("&&&");
  
   mailTitle = strType+ " SERVER에서 문제가 발생되었습니다";
   mailContent = strType + " SERVER의 점검 및 확인부탁드립니다";
   
   //메일을 발송한다.
   ImdbAlarmMail.sendMailSend(userInfo, mailTitle, mailContent, "ㅁㅁㅁ@gmail.com");

  
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }
 
 
 /**
  *
  * 1. 메소드명 : main
  * 2. 작성일    : 2013. 2. 18. 오후 2:07:29
  * 3. 작성자    : jt-laptop
  * 4. 설명       : 배치가 돌게되면 가장 먼저
  *
  * @param Args
  */
 public static void main(String[] Args){
  String firstServer = "";
  String  "";
  
  try{
   
  
   for(int i=0;i<2;i++){
    if(i == 0){
     try{
      URL site = new URL(firstServer );
      java.net.URLConnection imdbUrl = site.openConnection();
      if(imdbUrl.getContentLength() == -1){
       sendEmail("firstServer ");
      }
     }catch(Exception e){
      System.out.println("======== !!!! firstServer 접속오류 확인!!!! ========");
      e.printStackTrace();
      sendEmail("NEWS");
     }
    }else{
     try{
      URL site = new URL(popupServer);
      java.net.URLConnection imdbUrl = site.openConnection();
      if(imdbUrl.getContentLength() == -1){
       sendEmail("secondServer ");
      }
     }catch(Exception e){
      System.out.println("======== !!!! secondServer 접속오류 확인!!!! ========");
      e.printStackTrace();
      sendEmail("POPUP");
     }
    }
   }
   
  }catch(Exception e){
    System.out.println("======== 메일전송 프로그램에 오류가 발생하였습니다 ========");
    e.printStackTrace();
  }
  
  System.out.println("======== 서버정상 작동 확인여부 종료 ========");
  
 }
 
 
 

320x100

'IT > Java' 카테고리의 다른 글

텍스트 포멧 코딩~  (0) 2021.05.17
The error occurred while applying a parameter map  (0) 2021.05.17
파일 읽어들일때 라인넘버 추가하는법~  (0) 2021.05.17
jstl fmt 관련~  (0) 2021.05.17
classes에서 properties 파일 읽어오기  (0) 2021.05.17