원하는 메일 주소로 바로 메일 발송하기 이전에
보내는 입장에서 별도의 보안과정 없이 메일을 발송할 시
여러 위험에 노출되기 쉽다.
그래서 본 예제를 진행하기 전에 메일을 발송할 별도의 구글 메일을 만든다.
이후에 계정 설정에 보안메뉴를 통해 2단계 인증을 사용하도록 설정하고 보안키를 받도록 한다.
코드 작성
package app;
import java.util.Properties;
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;
public class MailSender {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("생성한 구글메일", "보안키");
}
});
String receiver = "수신받을 메일 주소";
String title = "제목";
String content =
"<h2 style='color:red'>"
+ "˚∧_∧ + —̳͟͞͞💗\r\n" +
"( •‿• )つ —̳͟͞͞ 💗 —̳͟͞͞💗 +\r\n" +
"(つ < —̳͟͞͞💗\r\n" +
"| _つ + —̳͟͞͞💗 —̳͟͞͞💗 ˚\r\n" +
"`し´\r\n" +
""
+ "</h2>\r\n";
Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress("생성한 구글메일", "보내는사람", "utf-8"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(receiver));
message.setSubject(title);
message.setContent(content, "text/html;charset=utf-8");
Transport.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
결과 확인
성공
반응형
'Library & API' 카테고리의 다른 글
Hikari - 히카리 커넥션 풀(Connection pool) 사용해보기 (0) | 2022.03.29 |
---|---|
jQuery - RSS(xml parsing)를 이용한 기사내용 크롤링하기 (0) | 2022.03.26 |
주소 팝업(+검색) api 사용 - jsp (0) | 2022.03.26 |
HTML parsing - 타 사이트 정보 가져와서 DB에 저장 (0) | 2022.03.26 |
DOM(Document Object Model) - 문서 객체 모델 기초개념 (0) | 2022.03.25 |