2009-09-30 4 views

Répondre

4

solution Simplest si vous ne me dérange pas même encodage des mots qui ne ont pas besoin est de tout mettre dans un base64 RFC 2047-mot codé:

$subject= "=?utf-8?b?".base64_encode($subject)."?="; 
$body= "blah blah $utf8text blah"; 
$headers= "MIME-Version: 1.0\r\n"; 
$headers.= "From: =?utf-8?b?".base64_encode($fromname)."?= <$fromaddress>\r\n"; 
$headers.= "Content-Type: text/plain;charset=utf-8"; 

mail($toaddress, $subject, $body, $headers); 
+0

Merci, mais cette réponse est plutôt incomplète. Je dois utiliser åäö dans le message, l'en-tête "From:" et le sujet. Comment puis je faire ça? Merci pour votre temps. – Johan

+0

Ajout de plus de contexte. L'en-tête From est la même méthode de codage que l'en-tête Subject. L'encodage du corps du courrier est contrôlé par Content-Type. Je prends comme lu que vous avez déjà vos caractères åäö encodés comme la chaîne d'octets UTF-8 '\ xc3 \ xa5 \ xc3 \ xa4 \ xc3 \ xb6'. – bobince

-2
$headers = array('From' => $from, 
    'To' => "<$to>", 
    'Subject' => $subject); 

if ($is_html) { 
    $headers['Content-type'] = "text/html; charset=UTF-8"; 
} else { 
    $headers['Content-type'] = "text/plain; charset=UTF-8"; 
} 

Cela fonctionne pour moi

Questions connexes