2014-05-24 52 views
1

我正在尝试使用HTML正文发送电子邮件。 我有一个包含一些有效的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> 
+0

看看这个:http://stackoverflow.com/a/5216927/812598 – GoRoS

+0

它没有帮助。我知道显示图像将要求用户接受它。我的问题是,我要么收到我的html源代码作为纯文本或我收到的HTML,但图像被剥离了Html.fromHtml()... – user1026605

回答

0

你做了什么似乎是正确的。只需将图像上传到您的服务器上,并使用< img src =“/ link/to/your/image”/>标记在电子邮件的BODY中为您的图像提供实际链接。

+1

它没有帮助。随着第一个解决方案,我收到我的html源代码,第二个图像被剥离 – user1026605

+0

我明白了。问题可能是html /文本。尝试使用intent.setType(“application/image”)。 参考: http://stackoverflow.com/questions/14457457/android-intent-send-an-email-with-image-attachment – amey91

+0

它不会改变任何东西。仍然收到纯HTML源代码 – user1026605

2

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

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

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

这是因为大多数电子邮件应用程序将使用EditText来允许用户编辑电子邮件,并且mos t电子邮件应用程序将使用Html.fromHtml()生成Spanned作为开始文本提供给EditTextHtml.fromHtml()不支持我引用的东西。 This blog post引用了2010年的支持,而AFAIK从那时起并没有太大变化。因此,如果您坚持使用HTML tags and attributes that work withHtml.fromHtml(),您将最大化HTML发送完好或接近完好的可能性。但是,不能保证它会像电子邮件应用程序作者那样,而不是你。

+0

是的Html.fromHtml()几乎为我工作。这太糟糕了,它将删除img标签...我正在寻找一种方法来尽可能地保留它们 – user1026605

+0

@ user1026605:那么,'src'属性是您的可能被授予的唯一属性。即使这需要主机应用程序实现一个'ImageGetter',它可以从Web上检索图像,并不是所有的电子邮件应用程序都会这样做。 – CommonsWare

+0

使用这个答案我理解为什么它不可能通过意图获取图像:http://stackoverflow.com/a/6476890/1026605 – user1026605

相关问题