2013-06-11 44 views
0

我遇到了我的PHP邮件格式以及使用丹麦语字母Æ,Ø和Å的问题。当通过电子邮件收到时,它们显示为垃圾。PHP邮件中的特殊字符

我试过函数查找和替换,但我根本无法让它工作。

这是我的PHP:

<?php 
if (empty($_POST) === false) { 
$errors = array(); 
$navn = $_POST ['navn']; 
$adresse = $_POST ['adresse']; 
$postby = $_POST ['postby']; 
$telefon = $_POST ['telefon']; 
$email = $_POST ['email']; 
$message = $_POST ['message']; 
if (empty($navn) === true || empty($adresse) === true || empty($postby) === true ||  empty($telefon) === true || empty($email) === true || empty($message) === true) { 
    $errors[] = 'Du skal skrive i alle felter!'; 
} else { 

} 
if (empty($errors) === true) { 

} 
if (empty($errors) === true) { 
    mail('mymail.dk', 'Kontakt fra mydomain.dk', "Navn: " . $_POST["navn"] . "\nAdresse: " . $_POST["adresse"] . "\nPost nr. & By: " . $_POST["postby"] . "\nTelefon: " . $_POST["telefon"] . "\nEmail: " . $_POST["email"] . "\nBesked: " . $_POST["message"], 'From: ' . 'mydomain.dk'); 
    header('Location: tak-for-din-mail.php'); 
    exit(); 
} 
} 
?> 

回答

0

这听起来像一个字符的编码问题。您应该可以在这里找到更多信息PHP E-Mail Encoding

+0

感谢您的链接声明的标题。然而,我很难找到如何将头文件合并到我自己的代码中,因为我已经尝试了几十种PHP邮件方法,并且这是唯一可行的方法。 –

+0

您应该只能将头参数添加到当前的mail()调用中。 http://us1.php.net/manual/en/function.mail.php –

+0

我试过了,但没有奏效。任何解决方案 –

0

您必须为mail()方法的附加参数提供utf8字符集。 阅读说明书。

+0

嗯,我已经尝试过了,添加内容类型等..之后,在我的mail()方法,但它没有工作。 –

+0

然后尝试提供不同的字符集..它应该工作 –

0

在PHP文件是这样的

header("Content-type: text/html; charset=UTF-8"); 
+0

谢谢。这应该放在标题下('Location:tak-for-din-mail.php');? –

+0

我不认为位置很重要。尽管出于所有目的,内容类型标题通常倾向于位于文件的顶部。 – user1660568