如何使用Android代码发送电子邮件

时间:2012-01-17 10:47:11

标签: android email

  

可能重复:
  Sending Email in Android using JavaMail API without using the default android app(Builtin Email application)

我是Android Coding的新手。我的要求是我想使用Android代码发送电子邮件。

请指导我。

3 个答案:

答案 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();
    }