【问题标题】:Send email with HTML content发送带有 HTML 内容的电子邮件
【发布时间】:2014-07-13 21:29:29
【问题描述】:

我正在尝试发送带有 HTML 正文的电子邮件。 我有一个包含一些有效 html 的字符串:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</head>
<body>%s</body>
</html>

我用一些 HTML 替换 %s。

然后我尝试使用以下代码将其作为 HTML 电子邮件发送:

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/html");
    intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
    intent.putExtra(Intent.EXTRA_TEXT, myhtmlcontent);
    context.startActivity(Intent.createChooser(intent, context.getText(R.string.share)));

但我只收到纯文本形式的 html 源代码

现在如果我替换

intent.putExtra(Intent.EXTRA_TEXT, myhtmlcontent);

intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(myhtmlcontent));

我收到了一封有效的 HTML 电子邮件,但我的所有图片都已替换为某些特殊字符。有没有办法保留我的原始 html 内容并将其显示为 HTML 电子邮件?

这是我的完整 HTML 代码

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body><p><a href="http://www.dailymars.net/wp-content/uploads/2014/05/Ant-Man.jpg"><img
        class="aligncenter size-full wp-image-55602"
        src="http://www.dailymars.net/wp-content/uploads/2014/05/Ant-Man.jpg" alt="Ant-Man"
        width="720" height="302"/></a></p>

<p>Les enfants, l&rsquo;heure est grave. Vous l&rsquo;avez compris car vous l&rsquo;avez lu dans le
    titre de la news (eh ouaip!), <strong>Edgar Wright</strong> ne réalisera finalement pas <em>Ant
        Man</em>. Alors qu&rsquo;il était rattaché au projet depuis 2006 et qu&rsquo;il en avait
    écrit le scénario avec <strong>Joe Cornish</strong>, <strong>Marvel </strong>a annoncé que le
    réal avait quitté le navire. La faute à quoi? Des &laquo;&nbsp;différences créatives&nbsp;&raquo;,
    soit la meilleure excuse qu&rsquo;Hollywood aie jamais inventé.</p>

<p><strong>Marvel </strong>a par ailleurs ajouté que le départ de <strong>Wright </strong> ne
    changerait rien au casting ni à la date de sortie du film et qu&rsquo;un remplaçant, dont le nom
    devrait bientôt tomber, avait déjà été engagé. Dommage, ça n&rsquo;aura pas la même saveur.</p>

<p><em>Ant Man</em> avec <strong>Paul Rudd, Michael Douglas, Evangeline Lilly, Corey Stoll, Michael
    Pena</strong> et <strong>Patrick Wilson.</strong> Mais sans <strong>Edgar Wright</strong>.
    Sortie en juillet 2015</p>

<p style="text-align: right;"><em>Source: <a
        href="http://variety.com/2014/film/news/edgar-wright-leaves-marvels-ant-man-1201190458/">Variety</a></em>
</p>
</body>
</html>

【问题讨论】:

  • 没用。我知道显示图像需要用户接受。我的问题是我要么以纯文本形式接收我的 html 源代码,要么我正在接收 HTML 但图像被 Html.fromHtml() 剥离...

标签: android html email android-intent


【解决方案1】:

任何Intent 的解释由接收者决定。有 许多 ACTION_SEND 处理程序,包括 许多 电子邮件应用程序。电子邮件应用发送的 HTML 无需与您提供的 HTML 完全相同。

特别是,很少(如果有)电子邮件应用程序将支持包含您的 HTML 包含的某些结构的 HTML,例如:

  • &lt;meta&gt;
  • class 属性
  • style 属性

这是因为大多数电子邮件应用程序将使用EditText 来允许用户编辑电子邮件,并且大多数电子邮件应用程序将使用Html.fromHtml() 生成Spanned 以提供给EditText 作为起始文本。 Html.fromHtml() 不支持我引用的内容。 This blog post 引用了 2010 年支持的内容,而 AFAIK 从那时起并没有太大变化。

因此,如果您坚持使用 HTML tags and attributes that work with Html.fromHtml(),您将最大限度地提高 HTML 被完整发送或接近完整发送的几率。但是,不能保证它会,因为这取决于电子邮件应用程序的作者,而不是您。

【讨论】:

  • 是的 Html.fromHtml() 几乎对我有用。删除img标签太糟糕了......如果可能的话,我正在寻找一种方法来保留它们
  • @user1026605:嗯,src 属性是你唯一可能被尊重的属性。即便如此,主机应用程序也需要实现一个ImageGetter,它可以从 Web 检索图像,而且并非所有电子邮件应用程序都会这样做。
  • 使用这个答案我明白为什么无法通过意图获取图像:stackoverflow.com/a/6476890/1026605
  • @user1026605:这仅适用于您自己运行Html.fromHtml() 并将Spanned 放入Intent 额外的情况。这不会影响在 Intent extra 中传递 HTML 源代码。
  • 是的,但这是唯一可行的方法(部分)。如果我调用 intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(myhtmlcontent));然后我得到正确格式化的文本但丢失了图像,如果我调用 ntent.putExtra(Intent.EXTRA_TEXT, myhtmlcontent);我只是将我的 html 源代码显示为纯文本...
【解决方案2】:

你所做的似乎是正确的。只需将图片上传到您的服务器上,并使用 标签在电子邮件正文中提供指向图片的实际链接。

【讨论】:

  • 它没有帮助。使用第一个解决方案,我收到了我的 html 源代码,第二个图像被剥离了
  • 我明白了。问题可能是 html/文本。尝试使用 intent.setType("application/image")。参考:stackoverflow.com/questions/14457457/…
  • 它不会改变任何东西。仍然收到纯 html 源代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2012-01-28
相关资源
最近更新 更多