Java 이메일 유효성 메일 서버 도메인 검사
이메일이나 핸드폰 같은 정규화된 표현들은 유효성 검사를 하는 경우가 많습니다.
또한, 이메일을 발송 할 때 해당 메일 서버가 있는지도 체크를 하여 발송을 해야 하는 로직이 들어가야 하는 경우도 있습니다.
하여 오늘은 Java 이메일 유효성 메일 서버 도메인 검사에 대해서 알아보겠습니다.
또한, 내용과는 상관 없지만 이메일로 캠페인을 할 때 반응 수집에 간해서도 아래에 잠시 언급하도록 하겠습니다.
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();
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}&R=30&L={LOGID}&T={TOEMAIL}'>";
메일이 열리면 해당 img가 이미지를 표시하기위해 해당 주소를 호출하고 발송코드를 "30"으로 update 합니다.
3. 클릭은 그대로 a 태그를 아래와 같이 사용하면 됩니다.
<a href="http://000.000.00.000:8080/admin/campaign/emailResponse.do?campaignEmailSendId={CAMPAIGN_EMAIL_SEND_ID}&R=40&L={LOGID}&T={TOEMAIL}">이미지</a>
이상으로 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}&R=30&L={LOGID}&T={TOEMAIL}'>";
메일이 열리면 해당 img가 이미지를 표시하기위해 해당 주소를 호출하고 발송코드를 "30"으로 update 합니다.
3. 클릭은 그대로 a 태그를 아래와 같이 사용하면 됩니다.
<a href="http://000.000.00.000:8080/admin/campaign/emailResponse.do?campaignEmailSendId={CAMPAIGN_EMAIL_SEND_ID}&R=40&L={LOGID}&T={TOEMAIL}">이미지</a>
이상으로 Java 이메일 유효성 메일 서버 도메인 검사에 대해서 알아보았습니다.
유용한 정보였다면 좋겠네요...ㅎ
오늘도 행복한 하루 되세요~^^
댓글
댓글 쓰기