2016-02-04 36 views
-1

我做了在XML文件中的用戶界面和我能如何在用戶在Android中註冊時發送驗證/確認電子郵件?

驗證註冊登記的所有字段Email_Navigator.Java文件,但同時按鈕調

點擊提交超過郵件應該去輸入電子郵件。我怎樣才能做到這一點?

+1

請出示你的代碼,並增加堆棧溢出之前就谷歌ATLEAST –

+0

http://www.tutorialspoint.com/java/java_sending_email.htm –

回答

1

創建類

  1. Session.java

    private Session createSessionObject() { 
        Properties properties = new Properties(); 
        properties.put("mail.smtp.auth", "true"); 
        properties.put("mail.smtp.starttls.enable", "true"); 
        properties.put("mail.smtp.host", "smtp.gmail.com"); 
        properties.put("mail.smtp.port", "587"); 
    
        return Session.getInstance(properties, new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(username, password); 
        } 
        }); 
    } 
    
  2. Message.java

    private Message createMessage(String email, String subject, String messageBody, Session session) throws MessagingException, UnsupportedEncodingException { 
        Message message = new MimeMessage(session); 
        message.setFrom(new InternetAddress("[email protected]", "Tiemen Schut")); 
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(email, email)); 
        message.setSubject(subject); 
        message.setText(messageBody); 
        return message; 
    } 
    

定義在活動發送這樣的郵件的內部類:

private class SendMailTask extends AsyncTask<Message, Void, Void> { 
private ProgressDialog progressDialog; 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    progressDialog = ProgressDialog.show(MainActivity.this, "Please wait", "Sending mail", true, false); 
} 

@Override 
protected void onPostExecute(Void aVoid) { 
    super.onPostExecute(aVoid); 
    progressDialog.dismiss(); 
} 

@Override 
protected Void doInBackground(Message... messages) { 
    try { 
     Transport.send(messages[0]); 
    } catch (MessagingException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 
} 

然後在最後調用此方法在您的onClick:

private void sendMail(String email, String subject, String messageBody) { 
    Session session = createSessionObject(); 

    try { 
     Message message = createMessage(email, subject, messageBody, session); 
     new SendMailTask().execute(message); 
    } catch (AddressException e) { 
     e.printStackTrace(); 
    } catch (MessagingException e) { 
     e.printStackTrace(); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 
} 

注:用戶名密碼&在passswordAuthentication()是你將要使用的發送郵件的郵件憑證。

爲了更好的解釋 退房此鏈接: http://www.tiemenschut.com/how-to-send-e-mail-directly-from-android-application/

+0

謝謝這麼多......但我仍然感到困惑,我該如何把這段代碼放在Android應用程序中? –

相關問題