웹사이트에서 회원가입을 할 때 메일인증을 하는 경우가 많다.
Spring Framework를 이용하는 경우 Maven에 javax.mail을 추가하면 쉽게 보낼 수 있다.
처음 시도를 하면 아마 인증에 실패하게 될텐데, 이때 gmail에 가보면 차단된 로그인 시도 메일이 와있다.
여기서 보안 수준이 낮은 앱에 액세스하도록 허용을 해야 이 기능을 쓸 수 있다.
pom.xml 추가사항
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency>
우선 간단하게 spring project 안에 test용 class 하나만으로 진행했다.
import java.util.Properties; 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; public class MailTest { public static void main(String[] args) { final String username = "id@gmail.com"; // 자신의 gmail 주소 final String password = "password"; // 자신의 gmail 비밀번호 Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("receiver@mail.c")); // 받을 사람 메일 주소 message.setSubject("Testing Subject"); // 메일 제목 message.setContent("<div style='color: red'>테스트용 메일입니다.</div>", "text/html;charset=utf-8"); // html을 이용하여 메일 내용을 꾸밀 수 있다. charset=utf-8을 쓰지 않았을 때 한글이 깨지는 것이 확인되었다. // 그냥 텍스트만 보내려면 setText를 쓰면 된다. System.out.println("메일 보내는중..."); Transport.send(message); System.out.println("메일 전송 완료"); } catch (MessagingException e) { throw new RuntimeException(e); } } }
'dev' 카테고리의 다른 글
[Java] 구글OTP 연동 (QR코드, Key 생성) (4) | 2018.01.07 |
---|---|
[JSP] base 태그로 경로 잡기 (0) | 2017.12.27 |
PhantomJS를 이용하여 웹페이지 스크린샷 생성하기 (0) | 2017.12.26 |
[Spring] Spring Framework 프로젝트 초기 설정 (0) | 2017.12.25 |
우분투 root 암호 변경하기 (0) | 2017.12.13 |
리눅스 ssh 접속 명령어 (0) | 2017.12.13 |
비트코인, 이더리움 지갑 생성하기 (BlockCypher API 활용) (7) | 2017.12.08 |
Eclipse Dynamic Web Project에서 pom.xml 사용하기 (0) | 2017.12.07 |