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