主题或消息中包含特殊字符的电子邮件的 PHP 邮件标头

2022-01-11 00:00:00 email header mime character-encoding php

我的代码:

$to      = 'example@example.com';
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$header = "From: noreply@example.com
"; 
$header.= "MIME-Version: 1.0
"; 
$header.= "Content-Type: text/html; charset=ISO-8859-1
"; 
$header.= "X-Priority: 1
"; 

mail($to, $subject, $message, $header);

当我发送带有特殊字符的邮件时,例如 ®ð-˚©-ʼæ,˚ˍðß©,在消息中,它可以工作,但不再处理间距(每个新行或空格都被删除)第二个问题是主题中没有显示特殊字符.他们只是输出如下: øʼªʼ

When i send a mail with special characters such as ®ð-˚©-ʼ"æ,˚ˍðß©, in the message, it works but spacing is no longer dealt with (every new line or space gets removed) And the second problem is that the special characters are not displayed in the subject. They just output like: øʼªʼ

提前致谢!

推荐答案

内容类型:文本/html

Content-Type: text/html

如果您设置此标头,则意味着您必须将 HTML 发送给用户.您可以决定使用 TinyMCE 之类的工具,让用户在 Word 样式的编辑器中编写消息,并使用其中的 HTML 输出.或者将您的标题设置为纯文本.

If you set this header that means you have to send HTML to the user. You can either decide to use something like TinyMCE to let the user write the message in a Word-style editor and use the HTML output from that. Or set your headers to plaintext.

内容类型:文本/纯文本

Content-Type: text/plain

试试这个

$to      = 'example@example.com';
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$header = "From: noreply@example.com
"; 
$header.= "MIME-Version: 1.0
"; 
$header.= "Content-Type: text/plain; charset=utf-8
"; 
$header.= "X-Priority: 1
"; 

mail($to, $subject, $message, $header);

相关文章