为html-email声明mime类型

时间:2009-11-03 09:01:58

标签: mime-types html-email

我想创建一个html电子邮件,我已经阅读了很多关于如何做到的信息。有一条我找不到的信息。我该如何申报mime类型?我尝试过:

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

但它不起作用。

稍后编辑:
我正在尝试将邮件的内容类型设置为text/html,但我不知道如何。所有这些都是从常规电子邮件客户端写的。我必须在邮件正文中声明它?或者在邮件标题中(如果是,我该如何操作?)?

4 个答案:

答案 0 :(得分:27)

您是否尝试在发送到邮件服务器的邮件头中设置内容类型声明?如果是这样,你应该以这种方式设置它:

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

答案 1 :(得分:3)

电子邮件客户端基本上会忽略其中包含内容类型的任何META标记(至少截至2013-10-17)。

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

有关此问题的更多信息,请访问http://www.emailonacid.com/blog/details/C13/the_importance_of_content-type_character_encoding_in_html_emails

如果这对你没有意义,那我恐怕你运气不好。我发现唯一可靠的解决方案是将任何特殊字符转换为其HTML实体等效字符。上面的链接包含指向您的工具的链接。

希望有所帮助!

答案 2 :(得分:3)

元标记的结束标记仅在xhtml/xml中使用。如果您使用的是html,则应在<head>标记中使用它,例如:

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

答案 3 :(得分:0)

// To send HTML mail, the Content-type header must be set
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// Additional headers
$headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>';
$headers[] = 'From: Birthday Reminder <birthday@example.com>';
$headers[] = 'Cc: birthdayarchive@example.com';
$headers[] = 'Bcc: birthdaycheck@example.com';

// Mail it
mail($to, $subject, $message, implode("\r\n", $headers));

http://php.net/manual/en/function.mail.php#example-4180