2 xiaoxiaoaishang xiaoxiaoaishang 于 2012.10.16 13:28 提问

如何从我的android应用程序发邮件?

我正在写一个android的应用程序。我怎么从它发邮件?

希望大家能够帮帮我~

3个回答

niangzhi
niangzhi   2012.10.16 14:44
已采纳

最好的(最简单的)方法是用Intent

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
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();
}

否则你不得不自己写客户端

niangzhi
niangzhi 你需要仔细的了解一下Intent的原理是什么。它仅仅是打开一个带有基本的收件人、主题和已经填好的内容的邮件应用程序。它是基于邮件应用程序来发邮件的。
大约 5 年之前 回复
xiaoxiaoaishang
xiaoxiaoaishang 在上边的代码中,没有发邮件的ID。那么怎么发这个邮件?
大约 5 年之前 回复
liangchichexin
liangchichexin   2012.10.16 15:57

使用.setType("message/rfc822") ,然后选择器将显示你所有的支持发邮件的应用程序。

mansuifengqi
mansuifengqi   2012.10.16 16:57

我已经使用这个很长时间,而且它看起来不错,不需要非电子邮件应用程序。仅仅是用另一种方式发邮件。

Intent intent = new Intent(Intent.ACTION_SENDTO); 
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject of email");
intent.putExtra(Intent.EXTRA_TEXT, "Body of email");
intent.setData(Uri.parse("mailto:default@recipient.com"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);
dongxianfei
dongxianfei 这段代码在没有发送邮件应用的手机上是会报异常的,应该加一个判断
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片