Witam.
Mam problem z polskimi znakami w mailach wysyłanych przez classę PHPMailer. Posiadam najnowszą wersję pod PHP5.
Poniżej przedstawiam kod, który jest odpowiedzialny za wysłanie maila z danych z formularza:
<?php
include("class.phpmailer.php");
include("class.smtp.php");
$mail = new PHPMailer();
$mail->SetLanguage("pl");
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port
$mail->Username = "nazwa_usera"; // GMAIL username
$mail->Password = "hasło"; // GMAIL password
$mail->From = $_POST['email'];
$mail->FromName = $_POST['firstname']." ".$_POST['lastname'];
$mail->Subject = "Formularz kontaktowy - www.krzeslatolkiny.pl";
$mail->AltBody = $_POST['msg'];
$mail->Body = "Imię: ".$_POST['firstname']."<br />Nazwisko: ".$_POST['lastname']."<br />Email: ".$_POST['email']."<br />Telefon: ".$_POST['cellphone']."<br /><br />Wiadomość:<br />".$_POST['msg'];
$mail->WordWrap = 0; // set word wrap
$mail->MsgHTML($mail->Body);
$mail->AddAddress("moj_mail");
$mail->IsHTML(true); // send as HTML
if(!$mail->Send()) {
$GLOBALS['main'] .= 'Wiadomość nie została wysłana. <br />';
$GLOBALS['main'] .= 'Błąd systemu mailowego: ' . $mail->ErrorInfo;
} else
{
$GLOBALS['main'] .= 'Wiadomość została wysłana.';
}
?>
Wstawienie SetLanguage nic nie dało. Zmiana kodowania plików Classy z ANSI na UTF-8 również nic. Strona jest kodowana w UTF-8. Skrypt ten jest wykonywany przed komendą "SetHeaders".
Maila otrzymuje takiego:
ImiÄ™: asd
Nazwisko: asdasd
Email: Da@sdsad.pl
Telefon:
Wiadomość:
wad awd awd wad awd awd aw daw da w daw wa da w
Temat rozwiązany i do zamknięcia.
Na początku pliku class.phpmailer.php (na początku klasy) są deklarowane zmienne. Jedna z nich odnosi się do kodowania. Zmieniłem na utf-8 i działa jak należy