我做了在XML文件中的用戶界面和我能如何在用戶在Android中註冊時發送驗證/確認電子郵件?
驗證註冊登記的所有字段Email_Navigator.Java文件,但同時按鈕調
點擊提交超過郵件應該去輸入電子郵件。我怎樣才能做到這一點?
我做了在XML文件中的用戶界面和我能如何在用戶在Android中註冊時發送驗證/確認電子郵件?
驗證註冊登記的所有字段Email_Navigator.Java文件,但同時按鈕調
點擊提交超過郵件應該去輸入電子郵件。我怎樣才能做到這一點?
創建類
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);
}
});
}
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/
謝謝這麼多......但我仍然感到困惑,我該如何把這段代碼放在Android應用程序中? –
請出示你的代碼,並增加堆棧溢出之前就谷歌ATLEAST –
http://www.tutorialspoint.com/java/java_sending_email.htm –