У меня есть форма обратной связи, но он неустойчив, когда дело доходит до умлаут (мутация гласных). Например. иногда он показывает «ö» как «ö» (правильный), но иногда я получаю что-то странное, как «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';
?>
И теперь я действительно не знаю, что еще я мог сделать! Большое спасибо за вашу помощь - я с нетерпением жду ваших предложений!
возможно дубликат [Как установить умляут ü в почтовом предмете] (http://stackoverflow.com/questions/13645869/how -to-set-an-umlaut-% c3% bc-in-the-mail-subject) – adlag
Большое спасибо и извините за избыточную почту, поэтому это решило это для меня: $ mail-> CharSet = "UTF- 8" ; – Ollie