当我尝试发送电子邮件意图时,无论我使用的是INTENT.ACTION_SEND还是ACTION.SENDTO并使用股票索尼Xperia Active电子邮件客户端主题和收件人显示正常但身体是空的,除了标准客户贴出的评论。在我的三星Galaxy Note 2上,相同的代码就像魅力一样。
if(mPrefs.getBoolean("alternative_email_client", false)){
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:" + Uri.encode(emailStrings[6]) +
"?subject=" + Uri.encode("The subject") +
"&body=" + Uri.encode(emailBody);
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Email verschicken"));
} else {
Intent send = new Intent(Intent.ACTION_SEND);
send.putExtra(Intent.EXTRA_EMAIL, emailStrings[6]);
send.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
send.putExtra(Intent.EXTRA_TEXT, emailBody);
startActivity(Intent.createChooser(send, "Email verschicken"));
}
答案 0 :(得分:7)
要发送包含正文的电子邮件,请使用message / rfc822。
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "to1@example.com", "to2@example.com" });
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject of the email");
sendIntent.putExtra(Intent.EXTRA_TEXT, "Content of the email");
startActivity(sendIntent);
希望这有帮助。
答案 1 :(得分:1)
我将正文属性用于gmail,将EXTRA_TEXT用于其他电子邮件。我已经测试了不同的电子邮件应用程序,例如三星电子邮件,oneplus电子邮件和LG电子邮件,它们似乎支持EXTRA_TEXT,但是gmail支持“正文”属性。
fun composeEmailMessage(context: Context, subject: String, body: String, emails: Array<String> = arrayOf()) {
val intent = Intent(Intent.ACTION_SENDTO)
intent.data = Uri.parse("mailto:")
intent.putExtra(Intent.EXTRA_EMAIL, emails)
intent.putExtra(Intent.EXTRA_SUBJECT, subject)
intent.putExtra(Intent.EXTRA_TEXT, body)//other emails app
intent.putExtra("body", body)//gmail
if (intent.resolveActivity(context.packageManager) != null) {
context.startActivity(Intent.createChooser(intent, "Send email via..."))
}
}
答案 2 :(得分:0)
尝试添加消息类型
...
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, myMessage);
...