【问题标题】:How to include images in an HTML email in Android如何在 Android 的 HTML 电子邮件中包含图像
【发布时间】:2012-03-13 13:30:32
【问题描述】:

我正在尝试在我的电子邮件正文中使用 HTML 发送图像,但图像没有发送。我不知道我做错了什么。我尝试使用以下代码:

Intent i = new Intent(Intent.ACTION_SEND_MULTIPLE);
i.setType("text/html");
String tempStr = "<html><head><title></title><style> b{ color: red}             </style></head><body><img src=\""+ "images/assaultoffences.png" + "\"><b>quick</b></body>   </html>";
i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(tempStr));
i.putExtra(Intent.EXTRA_EMAIL, new String[] {"ashwini.soma@gmail.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
startActivity(i);

try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(SavePage.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

【问题讨论】:

  • 对您的图像 src 的引用是否正确?
  • 是的,我的图像是正确的。但是在正文中只有小符号
  • 您有 13 个问题,其中大多数有多个答案。如果至少有一个问题的答案令您满意,那么您真的应该接受每个问题的最佳答案。

标签: android html-email


【解决方案1】:

令人沮丧的是,Android 似乎并不原生支持这一点。一种解决方法是使用Java Mail 并自己解决。我所做的是使用droidQuery 库来帮助将我的HTML 写入文件并将其附加到电子邮件中:

final Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
String html = "<div>Place Your HTML here.</div>";
shareIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(html));
shareIntent.setType("text/html");
$.with(this).write(html, FileLocation.EXTERNAL, "email.html", false, false, new Function() {

    @Override
    public void invoke($ droidQuery, Object... params) {
        String file = ((File) params[1]).getAbsolutePath();
        shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file));
        startActivity(shareIntent);
    }
}, new Function() {
    @Override
        public void invoke($ droidQuery, Object... params) {
            Log.e("$", (String) params[1]);
        }
});

然后在 html &lt;body&gt; 的顶部添加了这个块(在 Android 电子邮件上的格式也很差):

<div style="background: gray; color: black; align='center'" >
    Trouble viewing this email? Open the attachment to view in your web browser.
</div>

如果您正在考虑第一种方法(Java 邮件),我建议您使用 droidMail 扩展 droidQuery,它使用库来提供简化的 API。

【讨论】:

    【解决方案2】:

    图片需要托管在某个地方。当用户收到电子邮件时,客户端将寻找不存在的图像“images/assaultoffences.png”。 将其托管在某处,然后在电子邮件中指定完整的 URL,例如 http://mydomain.com/images/assaultoffences.png

    【讨论】:

      【解决方案3】:

      您可以使用this 参考作为您的解决方案。

      我希望这能帮助您解决问题。

      谢谢。

      【讨论】:

        【解决方案4】:

        仅仅因为 html 引用图像并不意味着电子邮件应用程序会读取 html、解析它、找到引用的图像、将它们附加到电子邮件中并将引用更改为内部引用。

        已经有一个question and answer 描述了如何在发送电子邮件时将文件附加到电子邮件中。

        This answer 向您展示了如何从 html 中引用附加的图像,以使它们显示在正文中(至少适用于 Outlook)。

        【讨论】:

          猜你喜欢
          • 2016-03-20
          • 1970-01-01
          • 1970-01-01
          • 2018-05-05
          • 2011-06-22
          • 1970-01-01
          • 1970-01-01
          • 2015-06-06
          • 2014-12-09
          相关资源
          最近更新 更多