Ich versuche, PHPMailer zu verwenden, um die Registrierung und Aktivierung zu senden. usw. Mail an Benutzer:
require("class.phpmailer.php");
$mail -> charSet = "UTF-8";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.mydomain.org";
$mail->From = "[email protected]";
$mail->SMTPAuth = true;
$mail->Username ="username";
$mail->Password="passw";
//$mail->FromName = $header;
$mail->FromName = mb_convert_encoding($header, "UTF-8", "auto");
$mail->AddAddress($emladd);
$mail->AddAddress("[email protected]");
$mail->AddBCC('[email protected]', 'firstadd');
$mail->Subject = $sub;
$mail->Body = $message;
$mail->WordWrap = 50;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
Das $message
enthält lateinische Zeichen. Leider verwenden alle Webmail (gmail, webmail.mydomain.org, emailaddress.domain.xx) eine andere Codierung.
Wie kann ich die Verwendung der UTF-8-Codierung erzwingen, um meine E-Mails in allen Postfächern genau gleich anzuzeigen?
Ich habe versucht, die Breite des Mail-Headers zu konvertieren mb_convert_encoding()
, aber ohne Glück.
Antworten:
Wenn Sie zu 100% sicher sind, dass $ message ISO-8859-1 enthält, können Sie utf8_encode verwenden, wie David sagt. Verwenden Sie andernfalls mb_detect_encoding und mb_convert_encoding für $ message.
Beachten Sie auch das
Sollte ersetzt werden durch:
Und platziert nach der Instanziierung der Klasse (nach dem
new
). Die Eigenschaften unterscheiden zwischen Groß- und Kleinschreibung! Siehe das PHPMailer-Dokument für die Liste und die genaue Schreibweise.Die Standardcodierung von PHPMailer ist
8bit
auch problematisch für UTF-8-Daten. Um dies zu beheben, können Sie Folgendes tun:Beachten Sie, dass
'quoted-printable'
dies in diesen Fällen wahrscheinlich auch funktionieren würde (und vielleicht sogar'binary'
). Weitere Informationen finden Sie unter RFC1341 - Content-Transfer-Encoding-Headerfeld .quelle
Linie
$mail -> CharSet = "UTF-8";
muss nach$mail = new PHPMailer();
und ohne Leerzeichen sein!Versuche dies
quelle
Tut mir leid, dass ich zu spät auf der Party bin. Abhängig von Ihrer Serverkonfiguration müssen Sie das Zeichen möglicherweise ausschließlich mit Kleinbuchstaben utf-8 angeben. Andernfalls wird es ignoriert. Versuchen Sie dies, wenn Sie hier nach Lösungen suchen und keine der oben genannten Antworten hilft:
sollte ersetzt werden durch:
quelle
Ich arbeite mich so
http://php.net/manual/en/function.utf8-decode.php
quelle
quelle
Ich wurde & oacute; in $ mail-> Betreff / w PHPMailer.
Für mich lautet die Komplettlösung also:
Ich hoffe es hilft.
quelle
Wenn keines der oben genannten Verfahren funktioniert und E-Mails immer noch wie folgt aussehen
ª הודפסה ×•× ×©×œ
:quelle
@ $mail -> charSet = "UTF-8";
--- Diese Zeile sollte unter sein
$mail = new PHPMailer(); line.
pff ..
Ja, das ist richtig. Sie müssen es nach der Objektinstanziierung platzieren.
quelle
Der einfachste Weg und hilft Ihnen dabei, CharSet auf UTF-8 zu setzen
quelle
Um Probleme bei der Zeichenkodierung beim Senden von E-Mails mit der Klasse PHPMailer zu vermeiden, können wir sie so konfigurieren, dass sie mit der UTF-8-Zeichenkodierung unter Verwendung des Parameters "CharSet" gesendet werden, wie im folgenden PHP-Code dargestellt:
quelle
$ mail -> charSet = "UTF-8"; --- Diese Zeile sollte unter $ mail = new PHPMailer () stehen. Linie.
pff ..
quelle