개발자
네이버를 통하여 메일을 보내려 합니다 일반적으로 값을 입력하고 유효한 이메일로 보내면 잘 보내지지만 없는 이메일인 경우에는 반송처리되어 오는 메일을 서버가 감지해서 처리할 수 있는 방법은 없을까요?..
답변 1
안녕하세요! 네이버를 통하여 메일을 보내신다는게 네이버에서 제공하는 smtp 서버로 요청을 하신다는것으로 이해하고 답변 드리겠습니다. SMTP 서버로 메일 발송을 요청할 때 오류가 날 경우 "452 4.5.3 Too many recipients" 와 같이 응답코드 / 상태코드 / 오류 메시지 정보로 오류를 구성하는것으로 알고 있습니다. 따라서 없는 이메일로 요청을 했을 때 전달하는 오류 응답코드를 확인하시고 해당 오류 코드가 발생했을 때 원하시는 처리를 추가로 하면 되지 않을까 생각합니다. 저의 짧은 지식이 조금이나마 도움이 되시길 바라겠습니다.
이승철
작성자
안동대학교 정보통신공학과/풀스택(백엔드 집중) • 2024년 05월 27일
유효하지 않는 이메일 경우일때 발송 이후 반송되어오는 경우에도 오류코드가 오나요??
이양일
NaverCloud 백엔드 개발자 • 2024년 05월 27일
네이버에서 반송해주는 메일이 왔을때 이를 알고 싶으신 거라면 그런 방법이 있는지는 모르겠습니다만 에러코드로 내려주진 않을것 같습니다
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 05월 27일
네, 이메일의 발송 여부를 확인하고 실패한 경우에 대해 처리하는 방법을 강구할 수 있습니다. Spring Mail을 사용하여 메일을 보낼 때 JavaMailSender interface의 send 메소드를 사용합니다. 이 메소드는 문제가 생겼을 때 MailException 을 던집니다. 따라서 try-catch 블록을 사용하여 이 예외를 잡아낼 수 있으며, 그리고 예외가 발생한 경우 원하는 작업을 수행할 수 있습니다. ```java @Autowired private JavaMailSender mailSender; ... try { SimpleMailMessage message = new SimpleMailMessage(); message.setTo("to@example.com"); message.setSubject("Test subject"); message.setText("Test text"); mailSender.send(message); } catch (MailException e) { // 예외 발생시 처리 로직 System.out.println("Failed to send email."); } ``` 하지만 이 방법은 서버에서 메일이 성공적으로 보내졌지만, 유효하지 않은 주소로 인해 반송된 경우는 처리할 수 없습니다. 반송된 이메일을 처리하기 위해서는 다른 접근 방법이 필요합니다. 반송된 이메일을 받기 위한 전용 이메일 주소를 설정하고, 그 주소로 들어오는 메일을 확인하는 POP3 또는 IMAP 클라이언트를 서버에 설치한다면 가능합니다. Java에서는 JavaMail API를 사용하여 POP3 및 IMAP 클라이언트를 작성할 수 있습니다. 즉, Spring Mail로 이메일을 보낼 때 'Return-Path' 또는 'Reply-To' 헤더를 설정하고, 이 헤더에 반송된 메일을 받을 주소를 입력하면 됩니다. 그런 다음 서버에서 이 주소로 들어오는 메일을 확인하고 필요한 작업을 수행합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!