Closed yejun95 closed 6 months ago
apache james 서버를 키고 메일 클라이언트에서도 전송이 확인 됐다면 이제 java에서 진행한다.
java mail api를 이용한다.
controller, service, serviceImpl을 활용하여 진행
@PostMapping("/sendJames") public ResponseEntity apacheJamesSendMail(String senderEmail, String password, String recieverEmail) { emailService.apacheJamesSendMail("xodlf@test.com", "xodlf", "xodlf100@naver.com"); return new ResponseEntity(HttpStatus.OK); }
현재 3개의 매개변수를 받고 있다.
발신인은 현재 Apache James로 등록해놓은 호스트이다.
수신인은 나의 네이버 개인 계정이다.
public void apacheJamesSendMail(String senderEmail, String password, String recieverEmail);
@Override public void apacheJamesSendMail(String senderEmail, String password, String recieverEmail) { String host = "test.com"; Properties props = new Properties(); props.put("mail.smtp.host", host); Session session = Session.getDefaultInstance(props); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(senderEmail)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(recieverEmail)); message.setSubject("Test SMTP Test xodlf"); message.setText("xodlf sent an email Success!!"); Transport.send(message); System.out.println("[localMailSend]Success Message Send"); } catch (Exception e) { e.printStackTrace(); } }
String host : hosts 파일에 등록된 아이디
Properties props = new Properties() : 이메일 속성을 설정하기 위한 클래스
props.put("mail.smtp.host", host) : SMTP 호스트를 설정
Session session = Session.getDefaultInstance(props) : 이메일 세션을 생성
MimeMessage message = new MimeMessage(session) : Mime 형식의 이메일 메시지를 생성
message.setFrom(new InternetAddress(senderEmail)) : 발신자 이메일 주소를 설정
message.addRecipient(Message.RecipientType.TO, new InternetAddress(recieverEmail)) : 수신자 이메일 주소를 추가
message.setSubject("Test SMTP Test xodlf") : 이메일 제목을 설정
message.setText("xodlf sent an email Success!!") : 이메일 본문을 설정
Transport.send(message) : 메시지를 보내기 위해 Transport 클래스를 사용
System.out.println("[localMailSend]Success Message Send") : 이메일이 성공적으로 전송되었음을 콘솔에 출력
Postman 활용
api send를 한다.
리턴이 1이 나오면서 api 전송에 성공한다.;
eclipse console 확인
수신인이였던 xodlf100@naver.com 의 메일 확인
메일이 정상적으로 전송되었지만, 스팸메일함에서 확인할 수 있다.
보안 설정을 하지 않고 보내면 스팸으로 들어간다고 한다.
java mail api를 이용한 메일 전송
apache james 서버를 키고 메일 클라이언트에서도 전송이 확인 됐다면 이제 java에서 진행한다.
java mail api를 이용한다.
controller, service, serviceImpl을 활용하여 진행
✔ controller
현재 3개의 매개변수를 받고 있다.
발신인은 현재 Apache James로 등록해놓은 호스트이다.
수신인은 나의 네이버 개인 계정이다.
✔ service
✔ serviceImpl
String host : hosts 파일에 등록된 아이디
Properties props = new Properties() : 이메일 속성을 설정하기 위한 클래스
props.put("mail.smtp.host", host) : SMTP 호스트를 설정
Session session = Session.getDefaultInstance(props) : 이메일 세션을 생성
MimeMessage message = new MimeMessage(session) : Mime 형식의 이메일 메시지를 생성
message.setFrom(new InternetAddress(senderEmail)) : 발신자 이메일 주소를 설정
message.addRecipient(Message.RecipientType.TO, new InternetAddress(recieverEmail)) : 수신자 이메일 주소를 추가
message.setSubject("Test SMTP Test xodlf") : 이메일 제목을 설정
message.setText("xodlf sent an email Success!!") : 이메일 본문을 설정
Transport.send(message) : 메시지를 보내기 위해 Transport 클래스를 사용
System.out.println("[localMailSend]Success Message Send") : 이메일이 성공적으로 전송되었음을 콘솔에 출력
✔ 메일 전송 실습
Postman 활용
api send를 한다.
리턴이 1이 나오면서 api 전송에 성공한다.;
eclipse console 확인
수신인이였던 xodlf100@naver.com 의 메일 확인
메일이 정상적으로 전송되었지만, 스팸메일함에서 확인할 수 있다.
보안 설정을 하지 않고 보내면 스팸으로 들어간다고 한다.