Вложение PHPMailer не получает

Я написал код для отправки почты с файлом PDF в качестве вложения, отправка почты работает. Я использовал class.phpmailer.php. Ниже мой код.

$mpdf=new mPDF();   
$mpdf->ignore_invalid_utf8 = true;
$stylesheet = file_get_contents('appstyle_pdf.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($output);
$comname = preg_replace("/[^A-Za-z0-9]/","",$_POST['company']);
$name = $dirname.str_replace(" ","-",$comname)."_".$time_stamp.".pdf";        
$mpdf->Output($name,"F");       
$filename = basename($name);        
$file_size = filesize($name);       
$content = chunk_split(base64_encode(file_get_contents($name)));
$mail = new PHPMailer;
$msg = 'Message';
$body = '<html><body><p>' . $msg . '</p></body></html>'; //msg contents
$body = preg_replace("[\\\]", '', $body);
$mail->AddReplyTo('[email protected]', "ACIC");
$mail->SetFrom('[email protected]', "ACIC Order");
$address = '[email protected]'; //email recipient
$mail->AddAddress($address, "NAME");
$mail->Subject = 'SUBJECT of ACIC order form';
$mail->MsgHTML($body);
$mail->AddStringAttachment($content , $filename); 
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent Successfully please check attachement!";
}   

Когда я использую приведенный выше код, вложение приходит на почту, но файл повреждается. Сообщение об ошибке похоже на «Adobe reader не может открыть abc.pdf, потому что это либо не поддерживаемый тип файла, либо потому, что файл был поврежден (например, он был отправлен как вложение электронной почты и не был правильно декодирован)».


person Medoju Narendar    schedule 24.03.2015    source источник


Ответы (1)


Почему вы это делаете?

$content = chunk_split(base64_encode(file_get_contents($name)));
...
$mail->AddStringAttachment($content , $filename); 

Это совершенно не нужно. Просто сделайте это:

$mail->addAttachment($name);

Также я подозреваю, что вы используете старую версию PHPMailer; получить последнюю версию с github.

person Synchro    schedule 24.03.2015
comment
пожалуйста, пришлите мне ссылку на последнюю версию PHPMailer с github - person Medoju Narendar; 24.03.2015
comment
Версия phpmailder — 5.2.9, а версия php — 5.3. - person Medoju Narendar; 24.03.2015
comment
Хорошо, просто тогда вы основывали свой код на старом примере. - person Synchro; 24.03.2015
comment
пожалуйста, пришлите ссылку с новым примером кода или любым учебником. - person Medoju Narendar; 24.03.2015
comment
Есть такая замечательная штука под названием «гугл», которая позволяет вам искать что угодно. Поиск PHPMailer на github приведет вас здесь. - person Synchro; 24.03.2015