使用Android意图发送HTML邮件

我已经生成了一个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代码的字符串的方法。 但是,虽然GMail客户端在我的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(" Google"); 

这将使Google成为超链接

这对我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("

Some Content

") .append("http://https://stackoverflow.com/questions/2544141/send-html-mail-using-android-intent/www.google.com") .append("

More content

") .toString()) ); startActivity(Intent.createChooser(emailIntent, "Send email..."));