Вложение PHPMailer: почтовый клиент не декодирует - PullRequest
0 голосов
/ 23 марта 2011

используя метод AddAttachment PHPMailer на PHP 5, кажется, я не могу заставить почтовый клиент декодировать секцию base64.

Практически, получая сообщение электронной почты с Thunderbird, вместо моего прикрепленного файла "asyF074.tmp", я обнаружил прикрепленный файл "Part1.2", который содержит заголовки разделов (

name="asyF074.tmp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="asyF074.tmp"

), за которым следует base64 представление содержимого файла.

Я не могу понять, что происходит с приложением:

    $filename = tempnam ( "" , "asy" );

$f = fopen($filename, "wb");
fwrite($f, $tbl, strlen($tbl));
fclose($f);

/*
 * Send mail...
 */
$mail = new phpmailer();
$mail->IsSMTP(); 
$mail->From = "andrew@" . $domain;
$mail->FromName = "Andrew";
$mail->Host = $mail_host;  
$mail->Port = $mail_port;
$mail->AddAddress($mail_destination);
$mail->IsHTML(true);    
$mail->Subject = "2011 Polls";
$mail->Body = $msg;
$mail->AddAttachment($filename, "2011-Polls.xls", "quoted-printable", "application/vnd.ms-excel");
$mail->Send(); // send message

unlink($filename);

Кроме того, даже если я явно установил кодировку на «quoted-printable», вложение всегда приходит в кодировке base64.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 марта 2011

... найдено! Я не знаю почему, но это было из-за версии PHPMailer, которую я использовал (я знаю, что вы думаете: «Этот парень испортил предыдущую загрузку», но я могу заверить вас, что я скачал правильную библиотеку).

Я повторно (через 2 дня) повторно загрузил такую ​​же библиотеку для PHP 5, и теперь она работает.

Не было времени проверить, но что-то не так в коде библиотеки.

0 голосов
/ 23 марта 2011

Возможно, это не ответ на вашу проблему, но я предлагаю вам попробовать Zend_Mail от Zend_Framework. Я никогда не говорил о подобных проблемах, используя его.

...