MainActivity.java
点击按钮:
String fromEmail = "sample@gmail.com"; String fromPassword = "xxxxxx"; String toEmails = to_sample@gmail.com; String adminEmail = "admin@gmail.com"; String emailSubject = "App Registration Mail"; String adminSubject = "App Registration Mail"; String emailBody = "Your message"; String adminBody = "Your message"; new SendMailTask(YOurActivity.this).execute(fromEmail, fromPassword, toEmails, emailSubject, emailBody);
GMail.java
import java.io.UnsupportedEncodingException;import java.util.List;import java.util.Properties;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import android.app.alertDialog.Builder;import android.util.Log;public class GMail { final String emailPort = "587";// gmail's smtp port final String smtpAuth = "true"; final String starttls = "true"; final String emailHost = "smtp.gmail.com"; String fromEmail; String fromPassword; @SuppressWarnings("rawtypes") String toEmailList; String emailSubject; String emailBody; Properties emailProperties; Session mailSession; MimeMessage emailMessage; public GMail() { } @SuppressWarnings("rawtypes") public GMail(String fromEmail, String fromPassword, String toEmailList, String emailSubject, String emailBody) { this.fromEmail = fromEmail; this.fromPassword = fromPassword; this.toEmailList = toEmailList; this.emailSubject = emailSubject; this.emailBody = emailBody; emailProperties = System.getProperties(); emailProperties.put("mail.smtp.port", emailPort); emailProperties.put("mail.smtp.auth", smtpAuth); emailProperties.put("mail.smtp.starttls.enable", starttls); Log.i("GMail", "Mail server properties set."); } public MimeMessage createEmailMessage() throws AddressException, MessagingException, UnsupportedEncodingException { mailSession = Session.getDefaultInstance(emailProperties, null); emailMessage = new MimeMessage(mailSession); emailMessage.setFrom(new InternetAddress(fromEmail, fromEmail)); Log.i("GMail","toEmail: "+toEmailList); emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmailList)); emailMessage.setSubject(emailSubject); emailMessage.setContent(emailBody, "text/html");// for a html email // emailMessage.setText(emailBody);// for a text email Log.i("GMail", "Email Message created."); return emailMessage; } public void sendEmail() throws AddressException, MessagingException { Transport transport = mailSession.getTransport("smtp"); transport.connect(emailHost, fromEmail, fromPassword); Log.i("GMail","allrecipients: "+emailMessage.getAllRecipients()); transport.sendMessage(emailMessage, emailMessage.getAllRecipients()); transport.close(); Log.i("GMail", "Email sent successfully."); }}SendMailTask.java:
import java.util.List;import android.app.Activity;import android.app.ProgressDialog;import android.app.alertDialog.Builder;import android.os.AsyncTask;import android.util.Log;@SuppressWarnings("rawtypes")public class SendMailTask extends AsyncTask { private ProgressDialog statusDialog; private Activity sendMailActivity; public SendMailTask(Activity activity) { sendMailActivity = activity; } protected void onPreExecute() { statusDialog = new ProgressDialog(sendMailActivity); statusDialog.setMessage("Getting ready..."); statusDialog.setIndeterminate(false); statusDialog.setCancelable(false); statusDialog.show(); } @SuppressWarnings("unchecked") @Override protected Object doInBackground(Object... args) { try { Log.i("SendMailTask", "about to instantiate GMail..."); publishProgress("Processing input...."); GMail androidEmail = new GMail(args[0].toString(), args[1].toString(), args[2].toString(), args[3].toString(), args[4].toString()); publishProgress("Preparing mail message...."); androidEmail.createEmailMessage(); publishProgress("Sending email...."); androidEmail.sendEmail(); publishProgress("Email Sent."); Log.i("SendMailTask", "Mail Sent."); Config.mailSuccess="1"; } catch (Exception e) { publishProgress(e.getMessage()); Log.e("SendMailTask", e.getMessage(), e); } return null; } @Override public void onProgressUpdate(Object... values) { statusDialog.setMessage(values[0].toString()); } @Override public void onPostExecute(Object result) { statusDialog.dismiss(); }}库文件



