ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javax 를 이용한 gmail 서버로 메일 보내기
    개발/java 2016. 4. 22. 09:34
    import java.util.Properties;
    
    import javax.mail.Address;
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    import mgood.domain.User;
    
    
    public class SMTPUtil{
    
    			
    	private final static String ACCOUNT = mgood.common.util.Properties.getProperty("Globals.emailAccount");
    	private final static String PASSWORD = mgood.common.util.Properties.getProperty("Globals.emailPassword");
    	
    	
    	// 메일보내기 - 회원가입시 자동발송 용 (Gmail smtp)
    	public Boolean sendMail(User domain) throws Exception {
    		boolean chkBoolean = true;
    		Properties p = new Properties();
    		// 보내는사람 메일 주소(Gmail용)
    			p.put("mail.smtp.user", ACCOUNT); // Google계정@gmail.com으로 설정
    			p.put("mail.smtp.host", "smtp.gmail.com");
    			p.put("mail.smtp.port", "465");
    			p.put("mail.smtp.starttls.enable","true");
    			p.put("mail.smtp.auth", "true");
    			p.put("mail.smtp.debug", "true");
    			p.put("mail.smtp.socketFactory.port", "465");
    			p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    			p.put("mail.smtp.socketFactory.fallback", "false");
    
    		try {
    			Authenticator auth = new SMTPAuthenticator();
    			Session session = Session.getInstance(p, auth);
    			
    			session.setDebug(true); // 메일을 전송할 때 상세한 상황을 콘솔에 출력한다.
    			MimeMessage msg = new MimeMessage(session);
    			String message = "1231223312132123312";
    			msg.setSubject("내용"); //제목
    			Address fromAddr = new InternetAddress(ACCOUNT); // 보내는 사람의 메일주소
    			msg.setFrom(fromAddr);
    			Address toAddr = new InternetAddress(domain.getUserEml()); // 받는 사람의 메일주소
    			msg.addRecipient(Message.RecipientType.TO, toAddr);
    			msg.setContent(message, "text/html;charset=UTF-8");
    			
    			
    			Transport.send(msg);
    				
    				
    		} catch (Exception mex) { 
    			mex.printStackTrace();
    			chkBoolean = false;
    		}
    		
    		return chkBoolean;
    		
    	}
    	
    	
    	
    	
    	
    	
    	private static class SMTPAuthenticator extends Authenticator {
    		public PasswordAuthentication getPasswordAuthentication() {
    			return new PasswordAuthentication(ACCOUNT, PASSWORD);
    		}
    	}
    	
    	
    }
    
    DEBUG SMTP: AUTH LOGIN failed 에러시
    https://www.google.com/settings/security/lesssecureapps
    보안 수준이 낮은 앱의 액세스 - > 사용으로 바꿔준다.
    jdk 1.8 사용시 오류남 1.7 부터 사용가능함
    메이븐추가
                   
    	         javax.mail
    			mail
    			1.4 
    		
    		
    			org.jsoup
    			jsoup
    			1.7.2
    		
    
Designed by Tistory.