使用html正文中的图像发送电子邮件意图

时间:2016-08-12 16:39:38

标签: android android-studio android-intent

是否可以使用意图发送包含身体图像的电子邮件。 我正在使用托管的图片......

public void sendEmail(View view){
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/html");
    intent.putExtra(Intent.EXTRA_SUBJECT, "Image in body test");

    intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(getHtmlBody()));
    startActivity(Intent.createChooser(intent, "Send Email"));
}

private String getHtmlBody() {
    String html = "<h1><img width=\"100\" src=\"http://cdn2-www.dogtime.com/assets/uploads/gallery/30-impossibly-cute-puppies/impossibly-cute-puppy-8.jpg\">   Hello World </h1>";
    return html;
}

我能够使用javaMail执行此操作但是自动发送电子邮件而用户无法看到任何内容,因此我希望我可以使用意图。

2 个答案:

答案 0 :(得分:1)

EXTRA_HTML_TEXT允许您提供HTML,以替代EXTRA_TEXT中的文字。但是,无法保证接收应用程序支持此额外内容(因此也必须存在EXTRA_TEXT的要求)。

代码看起来像这样:

public void sendEmail(View view){
  Intent intent = new Intent(Intent.ACTION_SEND);
  intent.setType("text/plain");
  intent.putExtra(Intent.EXTRA_SUBJECT, "Image in body test");
  intent.putExtra(Intent.EXTRA_TEXT, getTextBody());
  intent.putExtra(Intent.EXTRA_HTML_TEXT, getHtmlBody());

  startActivity(Intent.createChooser(intent, "Send Email"));
}

private String getHtmlBody() {
  return "<h1><img width=\"100\" src=\"http://cdn2-www.dogtime.com/assets/uploads/gallery/30-impossibly-cute-puppies/impossibly-cute-puppy-8.jpg\">"
      + getTextBody() + "</h1>";
}

private String getTextBody() {
  return "Hello world";
}

不支持HTML的应用只会使用EXTRA_TEXT中的文字。

答案 1 :(得分:0)

Arpit Garg在这个post分享中的答案和标签在大多数电子邮件客户端中都不起作用,所以不幸的是你的代码不能正常工作。我刚刚使用Gmail应用和其他一些应用程序测试了您的代码,然后将其放入占位符,而不是实际图像。你可以做的是添加一个图像作为附件。