我在这里可能是一个简单的问题,但我不明白为什么它不起作用,我有研究并尝试了很多例子,我发布你的我当前的例子,我从他们解释这个的教程中得到了这个是解决方案,但在我的情况下,它不起作用,我收到的电子邮件中的主题没有正确显示字母“ÄÖÜÜß”。
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: {$emailfrom}";
$to = "myemail@yahoo.de";
$subject = 'Betreff mit Ä, Ö und Ü ß ü';
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
$txt = "Hallo Sie haben das gewählt, am ä ";
mail($to,$subject,$txt,implode("\r\n",$headers));
通常他们在不同的教程中随处写,这是解决方案,但在我的情况下它不起作用,为什么?在我的情况下,也许与月亮有关?哈哈;)
答案 0 :(得分:5)
您应该使用mb_encode_mimeheader,
mb_internal_encoding("UTF-8");
$subject = mb_encode_mimeheader($subject,'UTF-8','Q');
在需要时(人类可读),它将处理Quoted-printable的编码。希望它能解决你的问题。
答案 1 :(得分:1)
无需对您的主题进行base64编码......以下工作正常:
<?php
$emailfrom = 'Some Name <somename@someserver.com>';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: $emailfrom";
$to = "myemail@yahoo.de";
$subject = 'Betreff mit Ä, Ö und Ü ß ü';
$txt = "Hallo Sie haben das gewählt, am ä ";
mail($to, $subject, $txt, implode("\r\n", $headers));
修改强> Gmail在执行上述带有Gmail地址的代码段时显示的部分标题:
Subject: Betreff mit Ä, Ö und Ü ß ü
X-PHP-Originating-Script: 1000:test.php
MIME-Version: 1.0
Content-type: text/html; charset=utf-8
Hallo Sie haben das gewählt, am ä
答案 2 :(得分:1)
因此,您需要选择一种编码,使用该编码保存HTML文件,并确保至少以其中一种方式声明该编码。至于使用什么编码,德国人通常使用ISO / IEC 8859-15,但UTF-8是一个很好的选择,可以同时处理任何类型的非ASCII字符。
第一种方法是使用utf 8
$headers.="MIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n";
第二种方式是根据德语使用charset
$headers.= "MIME-Version: 1.0\r\nContent-Type: text/html; charset=ISO/IEC 8859-15\r\n";
答案 3 :(得分:-1)
Try this
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: {$emailfrom}";
$to = "myemail@yahoo.de";
$subject = 'Betreff mit Ä, Ö und Ü ß ü';
$subject = str_replace("");
$subjects = '=?UTF-8?B?'.$subject.'?=';
$txt = "Hallo Sie haben das gewählt, am ä ";
mail($to,$subjects,$txt,implode("\r\n",$headers));
如果你有相同的错误输出方法请参考php中的iconv()它为你的问题提供解决方案..所有最好的伙伴..