我想创建一个html电子邮件,我已经阅读了很多关于如何做到的信息。有一条我找不到的信息。我该如何申报mime类型?我尝试过:
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
但它不起作用。
稍后编辑:
我正在尝试将邮件的内容类型设置为text/html
,但我不知道如何。所有这些都是从常规电子邮件客户端写的。我必须在邮件正文中声明它?或者在邮件标题中(如果是,我该如何操作?)?
答案 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));