我想创建一封 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));

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top