Frage

Ich versuche Phpmailer zu verwenden, um die Registrierung und Aktivierung zu senden. etc Mail an Benutzer:

require("class.phpmailer.php");
$mail -> charSet = "UTF-8";
$mail = new PHPMailer();
$mail->IsSMTP();  
$mail->Host     = "smtp.mydomain.org";  
$mail->From     = "name@mydomain.org";
$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("mytest@gmail.com");
$mail->AddBCC('mytest2@mydomain.org', '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 (Google Mail, webmail.mydomain.org, Emailaddress.domain.xx) unterschiedliche Codierung.

Wie kann ich zwingen, die UTF-8-Codierung zu verwenden, um meine E-Mails genau wie in allen Mailbox zu zeigen?

Ich versuche, die Mail -Header -Breite umzuwandeln mb_convert_encoding(), aber ohne Glück.

War es hilfreich?

Lösung

Wenn Sie zu 100% sicher sind, können Sie ISO-8859-1 enthalten, die Sie verwenden können UTF8_CODE Wie David sagt. Ansonsten verwenden MB_DETECT_ENCODING und mb_convert_encoding auf $ message.

Beachten Sie auch das

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

Sollte ersetzt werden durch:

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

Und platziert nach die Instanziierung der Klasse (nach der new). Die Eigenschaften sind fallsempfindlich! Siehe das Phpmailer doc Fotieren Sie die Liste und die genaue Rechtschreibung.

Auch die Standardcodierung von Phpmailer ist 8bit Dies kann mit UTF-8-Daten problematisch sein. Um dies zu beheben, können Sie:

$mail->Encoding = 'base64';

Beachten Sie das 'quoted-printable' würde wahrscheinlich auch in diesen Fällen auch funktionieren (und vielleicht sogar sogar 'binary'). Für weitere Details können Sie lesen RFC1341-Inhalts-transfer-kodierender Headerfeld.

Andere Tipps

$mail -> CharSet = "UTF-8";
$mail = new PHPMailer();

Linie $mail -> CharSet = "UTF-8"; Muss nach $mail = new PHPMailer(); Und ohne Leerzeichen!

Versuche dies

$mail = new PHPMailer();
$mail->CharSet = "UTF-8";

Tut mir leid, dass ich zu spät auf der Party gekommen bin. Abhängig von Ihrer Serverkonfiguration müssen Sie möglicherweise die Zeichen strikt angeben Kleinbuchstaben UTF-8, sonst wird es ignoriert. Versuchen Sie dies, wenn Sie hier nach Lösungen suchen und keine der oben genannten Antworten hilft:

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

sollte ersetzt werden durch:

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

Ich arbeite selbst so

  $mail->FromName = utf8_decode($_POST['name']);

http://php.net/manual/en/function.utf8-decode.php

$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->Encoding = "16bit";

Ich bekam Ö in $ mail-> Betreff /w phpmailer.

Für mich lautet die vollständige Lösung:

// Your Subject with tildes. Example.
$someSubjectWithTildes = 'Subscripción España';

$mailer->CharSet = 'UTF-8';
$mailer->Encoding = 'quoted-printable';
$mailer->Subject = html_entity_decode($someSubjectWithTildes);

Ich hoffe es hilft.

Wenn Ihre Nachricht Latin1 verwendet, können Sie verwenden UTF8_CODEFunktioniert für mich sowieso.

@ $mail -> charSet = "UTF-8";

--- Diese Linie sollte unter sein

$mail = new PHPMailer(); line.

pff ..


Ja, das ist richtig. Sie müssen es nach der Objekt -Instanziierung platzieren.

Der einfachste Weg und hilft Ihnen dabei, mit UTF-8 charSet festgelegt zu werden

$mail->CharSet = "UTF-8"

Um Probleme der Charaktercodierung beim Senden von E-Mails mit dem Klassen-Phpmailer zu vermeiden, können wir sie so konfigurieren, dass sie mit dem Parameter "charset" mit UTF-8-Zeichenkodierung gesendet werden, wie wir im folgenden PHP-Code sehen können:

$mail = new PHPMailer();
$mail->From = 'midireccion@email.com';
$mail->FromName = 'Mi nombre';
$mail->AddAddress('emaildestino@email.com');
$mail->Subject = 'Prueba';
$mail->Body = '';
$mail->IsHTML(true);


// Active condition utf-8
$mail->CharSet = 'UTF-8';


// Send mail
$mail->Send();
$mail = new PHPMailer();
$mail -> CharSet = "UTF-8";

$ mail -> charset = "utf -8"; --- Diese Zeile sollte unter $ mail = new Phpmailer () sein; Linie.

pff ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top