可能重複:
Sending Email in Android using JavaMail API without using the default android app(Builtin Email application)如何使用Android代碼發送電子郵件
我是新來的Android編碼。我的要求是我想使用Android代碼發送電子郵件。
請指導我這一點。
可能重複:
Sending Email in Android using JavaMail API without using the default android app(Builtin Email application)如何使用Android代碼發送電子郵件
我是新來的Android編碼。我的要求是我想使用Android代碼發送電子郵件。
請指導我這一點。
這裏是解決方案::
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT , "body of email");
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
你可以寫使用的.Net,Java或PHP的服務器端腳本。使Web請求(異步)用的參數domain.com/sendemail.php:
然後,服務器端腳本可以爲您處理這一切,併爲您提供電子郵件佈局的更多靈活性,而無需執行應用更新,如果需要更改某些內容。這也意味着電子郵件可以來自應用程序,而不是個人用戶保持匿名(這可能會或可能沒有用,因爲你沒有說過)。
要做所有這些看看Painless Threading article by Android然後看看如何提出Web請求。
選項B:
使用的意圖,像這樣:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String[] recipients = new String[]{"[email protected]", "",};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "This is email's message");
emailIntent.setType("text/plain");
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
參考:http://thedevelopersinfo.wordpress.com/2009/10/22/email-sending-in-android/
我已將此代碼添加到我的活動中。但仍然沒有工作。它沒有顯示任何錯誤消息。但郵件沒有發送。 – Thiru 2012-01-18 03:35:30
您可以從代碼直接發送電子郵件:
String to = "[email protected]";
String from = "[email protected]";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", SMPT_HOSTNAME);
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USERNAME, PASSWORD);
}
});
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
message.setSubject("This is the Subject Line!");
message.setText("This is actual message");
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException mex) {
mex.printStackTrace();
}
javax.mail。*在Android上不可用。 – 2014-01-15 20:13:47
這個問題已經被問在stackoverflow上百次。 – 2012-01-17 11:15:23