我没有收到任何错误,但邮件将不会显示!它保持空白
public void Send_Mail(View view) {
String txt_context = "My comment about the App : \n The App is good but does not support v3";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setData(Uri.parse("mailto:"));
intent.setType("message/rfc822"); //
intent.putExtra(Intent.EXTRA_EMAIL,"receiver@gmail.com"); // **this will not displayed** """
intent.putExtra(Intent.EXTRA_SUBJECT,"Comment about the APP");
intent.putExtra(Intent.EXTRA_TEXT,txt_context);
startActivity(intent);
答案 0 :(得分:2)
这是您通过意图正确发送电子邮件的方式。如果不是,您将需要URI参数才能让Gmail收到您的电子邮件。
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:" + Uri.encode("email@gmail.com") +
"?subject=" + Uri.encode("the subject") +
"&body=" + Uri.encode("the body of the message");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));
答案 1 :(得分:2)
以您自己的方式执行此操作的缺点是,它会在检索发送邮件的地址时出现gmail问题,因此许多应用程序都支持message/rfc822
,因此您的用户可能会被淹没在不同的客户端中。我建议你使用
Intent sendMail = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:" + Uri.encode("example@gmail.com") +
"?subject=" + Uri.encode("subject") +
"&body=" + Uri.encode("body);
Uri uri = Uri.parse(uriText);
sendMail.setData(uri);
startActivity(Intent.createChooser(sendMail, "Choose a client"));
因为这比使用intent.setType("message/rfc822");
指定更具体,并解决了gmail的问题。祝你好运。
答案 2 :(得分:1)
我知道这篇文章很老但我遇到了同样的问题,我找到了解决方案(in the official documentation):
如上所述,Intent.EXTRA_EMAIL
是:
一个String [],包含应该传递给的电子邮件地址。
所以要解决您的问题,而不是:
intent.putExtra(Intent.EXTRA_EMAIL,"receiver@gmail.com");
做的:
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"receiver@gmail.com"});
答案 3 :(得分:0)
对于科特林 emial 必须是一个 arrayOf,而不仅仅是一个字符串。
intent.putExtra(Intent.EXTRA_EMAIL, arrayOf("receiber@gmail.com"))