Я пытаюсь отправить электронное письмо с помощью XpertMailer 4 через SMTP
. Он работает хорошо, за исключением того, что я получаю специальные символы (буквы с акцентом), отображаемые как ?
в моем почтовом клиенте.XpertMailer (XPM4) SMTP и charset
Я думаю, что это связано с кодировкой, которую я не могу понять, как определить с помощью XPM4
. Мой код ниже:
// path to 'SMTP.php' file from XPM4 package
require_once '../includes/XPM4-v.0.5/SMTP.php';
// CONFIGURATION ------------------
$fromName = $_nome; // from name
$from = $_email; // from mail address
$toName = $clienteNome; // to name
$to = $email; // to mail address
$subj = 'Confirmação de Pedido'; // mail subject
$text = 'Confirmação de Pedido';
$html = '<p>Confirmação de Pedido</p>';
// CONFIGURATION ------------------
// set text/plain version of message
$msg1 = MIME::message($text, 'text/plain', 'ISO-8859-1');
// set text/html version of message
$msg2 = MIME::message($html, 'text/html', 'ISO-8859-1');
// compose message in MIME format
$mess = MIME::compose($msg1, $msg2);
// standard mail message RFC2822
$body = 'From: '.$fromName.' <'.$from.">\r\n".
'To: '.$toName.' <'.$to.">\r\n".
'Subject: '.$subj."\r\n".
$mess['header']."\r\n\r\n".
$mess['content'];
// get client hostname
$expl = explode('@', $to);
// connect to SMTP server (direct) from MX hosts list
$conn = SMTP::mxconnect($expl[1]) or die(print_r($_RESULT));
// send mail
$sent = SMTP::send($conn, array($to), $body, $from);
// disconnect from SMTP server
SMTP::disconnect($conn);
Я попытался обертывание текст в htmlspecialchars
используя ENT_QUOTES
и оба ISO-8859-1
и UTF-8
кодировок, но результат всегда один и тот же:
Confirma??o de Pedido
Любая помощь будет принята с благодарностью !
Update: ОК, так что я понял, как установить кодировку и обновил свой код, указанный выше. Тем не менее, те же результаты, независимо от того, установил ли я кодировку ISO-8859-1
или UTF-8
...
В заголовках или везде? В заголовках вам нужно использовать кодировку RFC2047; если эта библиотека не позаботится об этом, возможно, вам следует переключиться на ту, которая делает. – tripleee
Спасибо @tripleee. Я понял. Смотри ниже. –