ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바로 메일 보내기
    개발/개발관련 2019. 11. 19. 15:20
    반응형

    1. smtp로 자바 메일 보내기

    일단 smtp가 필요하다. 회사에선 자체 smtp가 있기때문에 그거 쓰면되고, 개인 프로젝트는 주로 naver, google을 많이 쓰는 것 같다.

     

    처음엔 naver smtp를 사용했다가 google로 변경했다.

    그 이유는 발신자 메일을 네이버는 수정을 못하게 막아놨기 때문이다.

     

    즉, 인증에 사용했던 메일이 발신자 메일로 박혀서 수정이 안된다.

    구글은 발신자 메일과 인증한 메일이 달라도 상관없어서 구글로 변경했다.

    그런데 이렇게 하게되면 스팸으로 처리될 수 있다곤 하는데 그런 현상은 발견 못했다. (메일의 양이 많거나 동시에 여러개 보내면 스팸으로 간다 하더라.. 확인X)

     

    무튼 먼저 javax.mail을 import 한다. 만약 없으면 jar 다운받아서 넣어야한다. (구글링하면 자세하게 나온다)

     

    public static void gmailMailSend(String email, String subject, String text) { 
    	    String host = "smtp.gmail.com";
    	    String user = "xxxxxx@gmail.com"; 
    	    String sender = "ccccc@gmail.com";
    	    String password = "zzzzzzzzzzz";
    	    
    	    // SMTP 서버 정보를 설정한다. (ssl적용에따라 설정옵션이 달라진다. 아래는 ssl적용 안한버전이다.)
    	    Properties props = new Properties(); 
    	    props.put("mail.smtp.starttls.enable", "true");
    	    props.put("mail.smtp.host", host); 	
    	    props.put("mail.smtp.port", 587); 
    	    props.put("mail.smtp.auth", "true"); 
                                                                                 
            //인증	    
    	    Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { 
    	        protected PasswordAuthentication getPasswordAuthentication() { 
    	            return new PasswordAuthentication(user, password); 
    	        } 
    	    }); 
    	    
    	    try { 
    	        MimeMessage message = new MimeMessage(session); 
                //받는사람 메일
    	        message.setFrom(new InternetAddress(sender)); 
    	        message.addRecipient(Message.RecipientType.TO, new InternetAddress(email)); 
    
    	        // 메일 제목 
    	        message.setSubject(subject); 
    	        // 메일 내용 
    	        message.setText(text); 
    	        // send the message 
    	        Transport.send(message); 
    	    } catch (MessagingException e) {
    	        e.printStackTrace(); 
    	    } 
    	}

     

     

    위 소스에서 네이버는 user와 sender가 같아야된다. 구글링 해보니 보안상 막아놓은듯하다.

    이거때문에 삽질좀했다....

    반응형

    '개발 > 개발관련' 카테고리의 다른 글

    google street view api panoid에 따라서 이미지 간헐적으로 안나오는 현상  (0) 2019.11.28
    자바로 ip 출력하기  (0) 2019.11.26
    xss 공격 보안  (0) 2019.11.18
    CORS 문제 해결  (1) 2019.11.14
    centos6 톰캣9설치  (0) 2019.10.25

    댓글

Designed by Tistory.