Java 이메일 유효성 메일 서버 도메인 검사

이메일이나 핸드폰 같은 정규화된 표현들은 유효성 검사를 하는 경우가 많습니다.
또한, 이메일을 발송 할 때 해당 메일 서버가 있는지도 체크를 하여 발송을 해야 하는 로직이 들어가야 하는 경우도 있습니다.


하여 오늘은 Java 이메일 유효성 메일 서버 도메인 검사에 대해서 알아보겠습니다.
또한, 내용과는 상관 없지만 이메일로 캠페인을 할 때 반응 수집에 간해서도 아래에 잠시 언급하도록 하겠습니다.




▶ 이메일(Email) 주소 유효성 검사

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String strEmail = 123456789@gmail.com
Pattern p = Pattern.compile("^(?:\\w+\\.?)*\\w+@(?:\\w+\\.)+\\w+$");
Matcher m = p.matcher(strEmail);
return m.matches();


▶ 이메일(Email) 서버 도메인 검사

import java.util.Hashtable;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
try // 사용시에 꼭 try를 사용!
{
 Hashtable env = new Hashtable();
 env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
 DirContext ictx = new InitialDirContext( env );

 String strEmail = "123456789@gmail.com";
 String[] result = strEmail.split("@");

 // Attributes attrs = ictx.getAttributes( "abcde.com", new String[] { "MX" });
 System.out.println("메일 서버====>>>"+result[result.length - 1]);
 logger.info("메일 서버====>>>"+result[result.length - 1]);

 Attributes attrs = ictx.getAttributes( result[result.length - 1], new String[] { "MX" });

 Attribute attr = attrs.get( "MX" );
 if( attr == null )
 {
  System.out.println("이메일 서버 없음!");
 }
 else{
  System.out.println(attr.size() + "의 이메일 서버 있음!");
 }
}
catch(Exception e){}




참고로 이메일로 캠페인 발송을 보낼 때 반응(메일 열기, 내용 클릭)을 수집하는 방법에 대해서 간단히 알아보겠습니다.

발송코드 => "10" : "대기", "20" : "발송", "30" : "이메일 열기(오픈)", "40" : "이메일 클릭", "50" : "이메일 정보 오류"

* 이메일 유효성 검사를 할 때 발송코드 50으로 셋팅이 가능합니다.

1. 이메일 발송 : 발송코드를 20으로 insert 또는 update

2. 이메일 발송 후 사용자 메일 오픈 : 포탈등의 메일 시스템에서는 메일 내용에 스크립트가 있으면 제거하기 때문에 예전같이 iframe 사용 대신 img을 아래와 같이 사용하고 있습니다.

"<IMG width=0 height=0 src='http://000.000.00.000:8090/scheduler/emailResponse.do?campaignEmailSendId={CAMPAIGN_EMAIL_SEND_ID}&amp;R=30&amp;L={LOGID}&amp;T={TOEMAIL}'>";

메일이 열리면 해당 img가 이미지를 표시하기위해 해당 주소를 호출하고 발송코드를 "30"으로 update 합니다.

3. 클릭은 그대로 a 태그를 아래와 같이 사용하면 됩니다.
<a href="http://000.000.00.000:8080/admin/campaign/emailResponse.do?campaignEmailSendId={CAMPAIGN_EMAIL_SEND_ID}&amp;R=40&amp;L={LOGID}&amp;T={TOEMAIL}">이미지</a>




이상으로 Java 이메일 유효성 메일 서버 도메인 검사에 대해서 알아보았습니다.
유용한 정보였다면 좋겠네요...ㅎ
오늘도 행복한 하루 되세요~^^

댓글

이 블로그의 인기 게시물

껌 떼는 법 (완벽 제거)

학점 계산기 (백분위 환산) 완벽 정리

[엑셀] 셀에 수식 적용하는 모든 것 완벽 정리