Прикаченият файл на 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
Има едно невероятно нещо, наречено „google“, което ви позволява да търсите неща. Търсенето на PHPMailer github ще ви отведе тук. - person Synchro; 24.03.2015