我是Android Coding的新手。我的要求是我想使用Android代码发送电子邮件。
请指导我。
答案 0 :(得分:24)
这是解决方案::
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"recipient@example.com"});
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();
}
答案 1 :(得分:3)
您可以使用.Net,Java或PHP编写服务器端脚本。使用以下参数(
)向domain.com/sendemail.php发出Web请求(异步)然后,服务器端脚本可以为您处理这一切,并为您提供更大的电子邮件布局灵活性,而无需在需要更改某些内容时执行应用更新。这也意味着电子邮件可以来自应用程序,而不是个人用户保持匿名(这可能会或可能没有用,因为你没有说)。
要完成所有这些,请查看Painless Threading article by Android,然后查看如何发送网络请求。
选项B:
像这样使用Intent:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String[] recipients = new String[]{"my@email.com", "",};
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/
答案 2 :(得分:2)
您可以直接从代码发送电子邮件:
String to = "abcd@gmail.com";
String from = "web@gmail.com";
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();
}