我在这里和谷歌搜索过来。但没有运气。
尝试使用PHP发送电子邮件我有以下内容:
header("Content-Type: text/html; charset=utf-8");
$Empfaenger = "mail@someone.com";
$Mailbetreff = "Subject";
$Header = "MIME-Version: 1.0\n";
$Header .= "Content-type: text/html; charset=utf-8\n";
$Header .= "From: ";
$Header .= $Sender;
$Header .= "\n";
$Header .= "Straße: Blabla";
mail($Empfaenger, $Mailbetreff, "", $Header);
“ß”和“ä”之类的字符总是以 形式出现。 由于电子邮件的内容将从一个表格生成,我不知道,哪些字符将被使用,显然无法用“& szlig”替换一个“ß”。
我也尝试过iso-8859-1并用htmlentities()编码字符串,但是只能将结果从 切换到Ã用于所有特殊字符。
如果是相关的:服务器运行PHP 5.2.7
答案 0 :(得分:2)
首先,标题端应该由CRLF终止(\ r \ n) 其次......您正在标题中添加邮件内容,而不是邮件内容...
检查mail功能的参数
答案 1 :(得分:1)
您应该使用html实体Html Entities list
正确使用ß将是:ß
答案 2 :(得分:1)
此行不应在$Header
:
$Header .= "Straße: Blabla";
您需要为body创建$body
变量,并将其添加为邮件的第3个参数。
所以你需要像这样使用你的代码:
header("Content-Type: text/html; charset=utf-8");
$Empfaenger = "a@b.c";
$Mailbetreff = "Subject";
$Header = "MIME-Version: 1.0\r\n";
$Header .= "Content-type: text/html; charset=utf-8\r\n";
$Header .= "From: ";
$Header .= $Sender;
$Header .= "\r\n";
$Body = "Straße: Blabla";
mail($Empfaenger, $Mailbetreff, $Body, $Header);
注意:强> 你的php文件编码也应该是UTF-8!