2013-04-26 2 views
0

Я пытаюсь отправить электронное письмо с помощью 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 ...

+0

В заголовках или везде? В заголовках вам нужно использовать кодировку RFC2047; если эта библиотека не позаботится об этом, возможно, вам следует переключиться на ту, которая делает. – tripleee

+0

Спасибо @tripleee. Я понял. Смотри ниже. –

ответ

0

Хорошо, я это понял.

Похоже, что XPM4 documentation нуждается в обновлении (или, по крайней мере, для более четкого определения). Вот что он говорит:

MIME :: array message (string content [, string type [, string name [, string charset [, string encoding [, string disposition [, string id [, integer line_length [, string line_end ]]]]]]]]) 

Обратите внимание, что есть параметр name и параметр charset. Я установил оба значения ISO-8859-1, и это сработало.

Смежные вопросы