发送包含HTML内容的电子邮件

时间:2014-05-24 16:59:53

标签: android html email android-intent

我正在尝试发送带有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>

2 个答案:

答案 0 :(得分:2)

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

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

  • <meta>
  • class属性
  • style属性

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

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

答案 1 :(得分:0)

你所做的似乎是正确的。只需上传服务器上的图像,然后使用&lt;和电子邮件,在电子邮件的BODY中为您的图像提供实际链接。 img src =&#34; / link / to / your / image&#34; /&GT;标签