声明 html 电子邮件的 mime 类型
-
13-09-2019 - |
题
我想创建一封 html 电子邮件,并且我已经阅读了很多有关如何做到这一点的内容。有一个信息我找不到。我应该如何声明 mime 类型?我尝试过:
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
但它不起作用。
稍后编辑:
我正在尝试将邮件的内容类型设置为 text/html
但我不知道怎么做。所有这一切都是通过常规电子邮件客户端编写的。我必须在邮件正文中声明吗?或者在邮件标题中(如果是这样,我该如何删除它?)?
解决方案
您尝试设置发送到邮件服务器的邮件头中的内容类型声明?如果是这样,你应该设置这种方式,在一个线本身:
Content-Type: text/html; charset=UTF-8
其他提示
基本上,电子邮件客户端会忽略其中包含内容类型的任何 META 标记(至少截至 2013 年 10 月 17 日)。
您需要在电子邮件服务器的特殊标头中设置内容类型声明。
有关此问题的更多信息可以在以下位置找到 http://www.emailonacid.com/blog/details/C13/the_importance_of_content-type_character_encoding_in_html_emails
如果这对你来说毫无意义,那么恐怕你就不走运了。我发现的唯一可靠的解决方案是将任何特殊字符转换为其等效的 HTML 实体。上面的链接包含一个可以为您执行此操作的工具的链接。
希望有帮助!
为元标记的结束标记仅用于xhtml/xml
。如果您使用的HTML,你应该使用它<head>
标签内,如:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
这适用于PHP:
// 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));
不隶属于 StackOverflow