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:

  1. <?php
  2. include("class.phpmailer.php");
  3.        include("class.smtp.php");
  4.        
  5.        $mail             = new PHPMailer();
  6.        
  7.        $mail->SetLanguage("pl");
  8.        $mail->IsSMTP();
  9.        $mail->SMTPAuth   = true;                  // enable SMTP authentication
  10.        $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
  11.        $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  12.        $mail->Port       = 465;                   // set the SMTP port
  13.        
  14.        $mail->Username   = "nazwa_usera";  // GMAIL username
  15.        $mail->Password   = "hasło";            // GMAIL password
  16.        
  17.        $mail->From       = $_POST['email'];
  18.        $mail->FromName   = $_POST['firstname']." ".$_POST['lastname'];
  19.        $mail->Subject    = "Formularz kontaktowy - www.krzeslatolkiny.pl";
  20.        $mail->AltBody    = $_POST['msg'];
  21.        $mail->Body       = "Imię: ".$_POST['firstname']."<br />Nazwisko: ".$_POST['lastname']."<br />Email: ".$_POST['email']."<br />Telefon: ".$_POST['cellphone']."<br /><br />Wiadomość:<br />".$_POST['msg'];
  22.        $mail->WordWrap   = 0; // set word wrap
  23.        
  24.        $mail->MsgHTML($mail->Body);
  25.        
  26.        $mail->AddAddress("moj_mail");
  27.        
  28.        $mail->IsHTML(true); // send as HTML
  29.        
  30.        if(!$mail->Send()) {
  31.            $GLOBALS['main'] .= 'Wiadomość nie została wysłana. <br />';
  32.            $GLOBALS['main'] .= 'Błąd systemu mailowego: ' . $mail->ErrorInfo;
  33.        } else
  34.        {
  35.            $GLOBALS['main'] .= 'Wiadomość została wysłana.';
  36.        }
  37. ?>


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:
  1. ImiÄ: asd
  2. Nazwisko: asdasd
  3. Email: Da@sdsad.pl
  4. Telefon:
  5.  
  6. WiadomoĹÄ:
  7. 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 winksmiley.jpg