2015-08-18 8 views
4

У меня есть форма обратной связи, но он неустойчив, когда дело доходит до умлаут (мутация гласных). Например. иногда он показывает «ö» как «ö» (правильный), но иногда я получаю что-то странное, как «H ร ¼ttenkäse» вместо «Hüttenkäse».У Phpmailer проблемы с Umlaut

Coding Page (в Dreamweaver) устанавливается в Unicode (UTF-8), в PHPMailer я изменил его, а также:

/** 
* The character set of the message. 
* @type string 
*/ 
public $CharSet = 'UTF-8'; 

Я попробовал следующее в начале моего send.php:

header('charset=utf-8'); 

но я получил сообщение об ошибке с сервера, хотя письмо было отправлено, но без правильного умлаут в теме, так что это, похоже, не работает.

send.php запускается с помощью этой формы:

<form method="post" action="send.php"> 

и send.php выглядит следующим образом:

<?php 
 

 
require_once("includes/phpMailer/class.phpmailer.php"); 
 
require_once("includes/phpMailer/class.smtp.php"); 
 
require_once("includes/phpMailer/language/phpmailer.lang-de.php"); 
 

 
$dl = $_GET['dienstleistung']; 
 

 
$vorn = $_POST['vorname']; // für Vorname falls keine Anrede 
 

 
$anredeGross = ucfirst($_POST[anrede]); 
 

 
\t if ($anredeGross === "Herr") { 
 
\t \t $anredeGross = $anredeGross . "n"; 
 
\t } elseif ($anredeGross === "Leer") { 
 
\t \t $anredeGross = $vorn; 
 
\t } else { 
 
\t \t $anredeGross = $anredeGross; \t 
 
\t } 
 

 
$firma = $_POST['firma']; 
 

 
\t if ($firma !=='') { 
 
\t \t $firma = ' von der Firma '.$firma; \t 
 
\t } else { 
 
\t \t $firma = ''; 
 
\t } 
 

 
$to_name = "Service Provicer"; 
 
$to = "[email protected]"; 
 
$subject = "Anfrage von ".$anredeGross." ".$_POST['name'].$firma; 
 
$message = $_POST['nachricht']."\n \n"."Ich interessiere mich für die folgenden Dienstleistungen: "."\n \n"; 
 
$message .= implode(', ', $_POST['dienstleistungen']); 
 
$message = wordwrap($message, 70); 
 
$from_name = $_POST['vorname'] . " " . $_POST['name']; 
 
$from = $_POST['email']; 
 

 
$mail = new PHPMailer(); 
 

 
$mail->Host = "www.myhost.host"; 
 
$mail->Port = 25; 
 
$mail->SMTPAuth = false; 
 
$mail ->Username = "username"; 
 
$mail ->Password = "password"; 
 
$mail->FromName = $from_name; 
 
$mail->From = $from; 
 
$mail->addAddress($to, $to_name); 
 
$mail->Subject = $subject; 
 
$mail->Body = $message; 
 

 
$result = $mail->send(); 
 
echo $result ? 'Sent' : 'Error'; 
 

 
?>

И теперь я действительно не знаю, что еще я мог сделать! Большое спасибо за вашу помощь - я с нетерпением жду ваших предложений!

+1

возможно дубликат [Как установить умляут ü в почтовом предмете] (http://stackoverflow.com/questions/13645869/how -to-set-an-umlaut-% c3% bc-in-the-mail-subject) – adlag

+0

Большое спасибо и извините за избыточную почту, поэтому это решило это для меня: $ mail-> CharSet = "UTF- 8" ; – Ollie

ответ

5

благодаря adlag для ввода, это решение:

$mail->CharSet ="UTF-8";