使用Android意图发送HTML邮件

我已经生成了一个HTML代码(包含<html><body></body></html>标记)作为String。 现在我想把这个HTML代码作为HTML发送给邮件。 我的代码如下。

 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/html"); intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"me@mydomain.com"}); intent.putExtra(Intent.EXTRA_SUBJECT, "I would like to buy the following"); intent.putExtra(Intent.EXTRA_TEXT, purchaseOrder()); startActivity(Intent.createChooser(intent, "sending mail")); 

其中purchaseOrder()是将具有完整HTML代码的string传递给我的方法。 但是,尽pipeGMail客户端在我的Nexus1上打开,但它具有包含所有HTML标记的string,而不是实际的HTML视图。 我尝试了以下,但得到错误。 GMail坠毁。

 intent.putExtra(Intent.EXTRA_STREAM, purchaseOrder()); 

这适用于我:

 final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("text/html"); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body)); startActivity(Intent.createChooser(emailIntent, "Email:")); 

但我注意到内联样式和图片标签被忽略…

对于其他人想要做到这一点,手动发送电子邮件在幕后使用android-javamailer工程(我已经做到了):

http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android

如果我没有错你正在寻找的是

  Html.fromHtml() 

例如

 Html.fromHtml("<a href="www.google.com"> Google</a>"); 

这将使谷歌超链接

这对我Intent.ACTION_SENDTO和我的代码在这里工作:

 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..."));