2009-11-03 73 views
9

我想创建一个html电子邮件,并且我已经阅读了很多关于如何执行此操作的信息。有一条信息我找不到。我应该如何声明MIME类型?我试过:为html-email声明MIME类型

meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

但它不起作用。

后来编辑:
我想要的内容类型的邮件设置为text/html,但我不知道怎么办。所有这些从常规电子邮件客户端写入时。我必须在邮件正文中声明它?或者在邮件标题中(如果是这样,我该怎么办?)?

+1

你是什么意思“它不工作”?你有错误信息吗?非ANSI字符看起来破碎了吗?您的邮件收件人是否看到HTML源代码而不是呈现的HTML? ... – Heinzi 2009-11-03 09:35:54

+1

它显示为纯文本 sica07 2009-11-03 10:11:56

回答

22

您是否试图在发送到邮件服务器的邮件头中设置内容类型声明?如果是这样,你应该这样设置,以线本身:

Content-Type: text/html; charset=UTF-8 
+0

我怎么能这样做,当我在一个正常的邮件客户端,如Gmail或雅虎? – sica07 2009-11-03 10:50:32

+1

你不能。我从来没有见过允许自定义HTML输入的webmail客户端(并且很少见过桌面客户端)。 – Quentin 2009-11-03 10:53:23

+0

如果你想插入自定义标题,那么你需要编写自己的客户端。这可能不值得去做,除非你有一些非常特殊的需求,比如测试SMTP服务器。 – 2013-08-26 18:23:15

2

基本上电子邮件客户端忽略了在他们的内容类型(至少截至2013年10月17日),任何的META标签。

您需要在电子邮件服务器的特殊标头中设置内容类型声明。这个问题

更多信息可以在http://www.emailonacid.com/blog/details/C13/the_importance_of_content-type_character_encoding_in_html_emails

发现如果这没有意义的你,那么恐怕你的运气了。我发现的唯一可靠的解决方案是将任何特殊字符转换为其HTML实体等价物。上面的链接有一个链接到一个工具,为你做到这一点。

希望有帮助!

2

元标记的结束标记仅用于xhtml/xml。如果你使用html,你应该在<head>标签内使用它:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head>