반응형


javax.mail.SendFailedException: Invalid Addresses 에러 

 

javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
 class com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 <idtong@nate.com>... Relaying denied
[MSG]  
Invalid Addresses;
  nested exception is:
 class com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 <idtong@nate.com>... Relaying denied

 

체크리스트 1

props.put("mail.smtp.host", "netian.com");

이 정보가 정확한지 확인해보세요..

 

만약 outlook 으로 위 smtp 서버를 통하여 메일이 전송된다면 저랑은 다른 문제일 것같군요..

 

telnet smtpaddress smtp 하면 해당 smtp 서버에 접근이 가능한지 그리고 활성화 중인지 확인이 가능합니다.

 

체크리스트 2

SMTP서버에서 릴레이를 거부한겁니다.

 

SMTP서버에 릴레이 허용 IP에 글쓴분 IP가 등록이 되어있어야 됩니다.

 

IIS가 설치된 컴퓨터가 있으면 SMTP서비스를 설치해서 SMTP서비스 등록정보에

 

들어가 보시면 좀 더 이해가 쉽게 될 것 같습니다.

 

항목중에 릴레이 라는게 있는데 거기서 특정 IP에서 들어오는 요청만 처리하게 하는

 

메뉴가 있습니다.

 

SMTP서버 지정해 주는 부분을 한번 확인해 보세요.

 

체크리스트 3

 

javax.mail.SendFailedException: Invalid Addresses;
익셉션은

웹메일에서 dns 에 등록되지 않은 서버에 메일을 보낼수 없게 막아놓습니다.

그래서 익셉션이 나는 도메인은 고정되어있을겁니다.

익셉션이 나는 곳에 catch 하는 부분에서 아래의 코드를 넣어보세요..

 

catch (MessagingException me) { 
me.printStackTrace();
Exception ex = me;
do {

if (ex instanceof SendFailedException) {
SendFailedException sfex = (SendFailedException)ex;
Address[] invalid = sfex.getInvalidAddresses();
if (invalid != null) {
System.out.println(" ** Invalid Addresses");
if (invalid != null) {
for (int i = 0; i < invalid.length; i++)
System.out.println(" " + invalid[i]);
}
}

그리고 위에서 캐취된 도메인중 사용가능한 도메인으로 하기 위해서는 서버 관리자에서 도메인을 등록해돌라고 합니다..

서버 관리자가 없으면 .. 찾아서 해야할듯하고요..

수고하세요.

출처 : http://blog.naver.com/PostView.nhn?blogId=idtong&logNo=130035405925


반응형

'Error 유형/해결' 카테고리의 다른 글

not all tokens processed  (0) 2013.12.26
[Mail] Sendmail 오류 메시지  (0) 2013.12.05

+ Recent posts