Wiem, że temat był wałkowany milion razy, ale przerobiłem wszystkie przykłady i nic nie pomogło.Chce sobie zrobić formularz kontaktowy na stronie. Strona jest kodowana w UTF-8. Do wysyłania maili używam PHPMailer. Skrypt wysyłający e-mail wygląda tak:
<?php
require 'phpmailer/PHPMailerAutoload.php';
$result = false;
if (isset($_POST['flag']) && ($_POST['flag'] == "Sending"))
{
while (true)
{
$fullname;
$email;
$subject;
$body;
if (!isset($_POST['fullname'])) break;
$fullname = strip_tags(trim($_POST['fullname']));
if (strlen($fullname) < 3 || strlen($fullname) > 30) break;
if (!isset($_POST['email'])) break;
$email = strip_tags(trim($_POST['email']));
if (strlen($email) < 3 || strlen($email) > 30) break;
if (!isset($_POST['subject'])) break;
$subject = strip_tags(trim($_POST['subject']));
if (strlen($subject) < 5 || strlen($subject) > 40) break;
if (!isset($_POST['message'])) break;
$body = htmlentities(trim($_POST['message']), ENT_NOQUOTES);
if (strlen($body) < 20) break;
$mail = new PHPMailer;
$mail->PluginDir = "phpmailer/";
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "*****";
$mail->Password = "******";
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->WordWrap = 50;
$mail->From = $email;
$mail->FromName = $fullname;
$mail->addAddress('**********');
$mail->addReplyTo($email, $fullname);
$mail->isHtml(true);
$mail->CharSet = "UTF-8";
$mail->Encoding = "base64";
$mail->Subject = $subject;
$mail->Body = $body;
$result = $mail->send();
break;
}
}
header("Location: index.php?sendResult=" . (($result == true) ? "succes" : "error") . "#contact");
?>
Ale zamiast polskich znaków dostaje krzaczki :( Co zrobiłem źle ?