[java] 자바로 지메일 email 보내기


자바로 지메일계정 이메일보내기

final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// 이메일 객체생성하기
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.store.protocol", "pop3");
props.put("mail.transport.protocol", "smtp");
final String username = "인증받은 이메일";//
final String password = "2단계인증에서 받은 비번";

try{
    Session session = Session.getDefaultInstance(props, 
    new Authenticator(){
    protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(username, password);
}});

//메세지 설정
Message msg = new MimeMessage(session);

//보내는사람 받는사람 설정
msg.setFrom(new InternetAddress("보내는사람@이메일"));
msg.setRecipients(Message.RecipientType.TO, 
					InternetAddress.parse("받는사람@이메일",false));
msg.setSubject("제목입니다");
msg.setText("\n내용입니다");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("발신성공!");

}catch (MessagingException error){ 
	System.out.println("에러가 발생했습니다: " + error);
}

예전에 설정해놔서 기억이 하나도 안난다..ㅠㅠ

password가 다른 글들을 다 읽어보면 이메일의 비번, 그러니까 구글계정 비번이라고하는데… 아니다!!!

저거때문에 엄청 삽질해서 적어둔건데.. 구글계정비번으로 하니까 auth실패를 계속해서 난 결국에

구글2단계 인증한뒤 보안키 받아서 그 보안키를 password에다 넣어줬더니 그제서야 작동했다.

난 암만찾아도 ‘‘계정-보안’에서 ‘보안 수준이 낮은 앱 허용’을 못찾겠더라.

그걸 ‘사용’으로 하면 그냥 이메일&&비번만 써도 되는거같은데 난 아무리해도 없어서 그냥 보안강화(2단계인증)해서 보안키 받아서 설정했다.

네이버는 프로퍼티설정, 포트번호가 다르니 따로 찾아야한다.




© 2018. by sora

Powered by sora