2014-04-07 3 views
0

내 앱 사용자에게 이메일 자격증 명을 요구합니다.사용자 이메일 인증 확인

사용자가 이메일을 삽입하고 패스 한 후 계정을 확인하고 싶습니다.

나는 을 사용하고 있습니다.입니다. 계정을 확인할 수있는 방법이 있습니까? 자격 증명이 실제로 유효한지 확인하십시오. 그렇지 않으면 유효하지 않은 사용자를 표시하고 메시지를 전달하고 싶습니다.

은 어쩌면 몇 가지 방법으로 수행 할 수

Transport.send(message); 

을 그리고 아무것도 전송하지 않으면 서 인증 예외를 확인하십시오.

답변

0

당신은 (멀리 떨어져 전체에서 불과 예,) 등의 타당성 검사를 만들 수 있습니다

String email = "[email protected]"; 

if (!email.contains("@") || !email.contains(".") || !(email.lastIndexOf(".") > email.indexOf("@"))) 
    showError(); 
1

안녕하세요이

public final static boolean validateEmail(CharSequence givenSeq) { 
    if (givenSeq!= null) { 
     return android.util.Patterns.EMAIL_ADDRESS.matcher(givenSeq).matches(); 
    } else { 
     return false; 
    } 
} 
0

처럼 뭔가를 할 수있는이 시도 :

/** 
* validate your email address format. [email protected] 
*/ 
public boolean emailValidator(String email) 
{ 
    Pattern pattern; 
    Matcher matcher; 
    final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 
    pattern = Pattern.compile(EMAIL_PATTERN); 
    matcher = pattern.matcher(email); 
    return matcher.matches(); 
} 
0

전송 개체를 만들고 연결을 관리하여 사용자 이름/암호가 작동하는지 확인할 수 있습니다.

Address[] to = InternetAddress.parse("[email protected]"); 
Transport t = session.getTransport(to[0]); 
t.connect(); 
t.close(); 

사용자 이름/패스와 봉투를 확인하려면 모든 봉투 정보가 있지만 내용이없는 메시지를 작성하십시오. 또는 적대적인 writeTo (OutputStream) 메서드가있는 MimeMessage의 하위 클래스를 만듭니다. 이 작품

MimeMessage msg = new MimeMessage(session); 
    Address[] from = InternetAddress.parse("[email protected]"); 
    Address[] to = InternetAddress.parse("[email protected]"); 
    msg.addFrom(from); 
    msg.setRecipients(Message.RecipientType.TO, to); 
    ByteArrayOutputStream out = new ByteArrayOutputStream(384); 
    msg.saveChanges(); 
    try { 
     msg.writeTo(out); 
     throw new AssertionError(); 
    } catch (MessagingException | IOException test) { 
     try { 
      Transport.send(msg); 
      throw new AssertionError(); 
     } catch (MessagingException | IOException expect) { 
      if (!exceptionEqual(test, expect)) { 
       //Notify the user.... 
      } 
     } 
    } 

이유는 Transport.send이 Message.writeTo로 만드는 경우 다음 메일 서버에 로그인 할 수 있습니다 의심 할 여지없이 알 수 있도록 내용이 마지막으로 기록 된 것입니다. 또한 서버는 봉투 정보를 수락했는지 여부를 알려줍니다. 그러나 그것이 봉투를 받아 들였다고해서 전달이 성공할 것이라는 의미는 아닙니다. Message.writeTo가 예외를 throw하기 때문에 실제 전자 메일 메시지는 보내지지 않습니다.