我找到了一种使用意图发送纯文本电子邮件的方法:
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new
String[]{"example@mail.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test");
但我需要发送HTML格式的文本 尝试setType(“text / html”)不起作用。
答案 0 :(得分:48)
您可以在额外内容中传递Spanned
文字。要确保意图仅针对处理电子邮件的活动(例如Gmail和电子邮件应用),您可以使用ACTION_SENDTO
以及以mailto方案开头的Uri。如果您事先不知道收件人,这也会有效:
final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
shareIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
.append("<p><b>Some Content</b></p>")
.append("<small><p>More content</p></small>")
.toString())
);
答案 1 :(得分:3)
这对我来说非常有用,但是ACTION_SENDTO对我来说并不是很有效 - 我收到了“不支持的操作”消息。我在这里找到了一个变体:
http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when
这是我的代码,它将两者结合在一起:
String mailId="yourmail@gmail.com";
Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
Uri.fromParts("mailto",mailId, null));
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here");
// you can use simple text like this
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here");
// or get fancy with HTML like this
emailIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
.append("<p><b>Some Content</b></p>")
.append("<a>http://www.google.com</a>")
.append("<small><p>More content</p></small>")
.toString())
);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
答案 2 :(得分:2)
我尚未启动Android开发,但意图的documentation表示如果使用EXTRA_TEXT,则MIME类型应为text / plain。看起来如果你想看HTML,你必须使用EXTRA_STREAM ......
答案 3 :(得分:1)
曾经尝试过一段时间通过gmail应用发送html,因此决定对我的发现有所了解,以防万一其他人遇到类似问题。
似乎无论我做了什么,我都无法获得包含粗体文本的html。 然后,我尝试切换到Outlook客户程序,但令我惊讶的是,它工作得很好。 HTML标记也可以在其他较旧的设备上运行,但不能在我的设备上运行(galaxy s7 API 26),因此我认为gmail应用似乎已放弃了对来自意图的html语法的支持,或者也许现在您需要提供它以某种非常具体的方式,但没有明确记录。
最适合我的gmail版本是Nexus 5X API 25仿真器(牛轧糖)上的6.9.25 ...版本 并且它停止了从7.5.21版本开始的工作...在Nexus 5x API 26仿真器(Oreo)上
答案 4 :(得分:0)
您必须更改&#34; EXTRA_TEXT&#34; for&#34; EXTRA_HTML_TEXT&#34;
https://developer.android.com/reference/android/content/Intent.html#EXTRA_HTML_TEXT
答案 5 :(得分:-3)
尝试在文本区域添加一些html怎么样?
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");