2013-09-11 2 views
7

Я новичок в phpmailer, и я могу отправлять электронные письма, сообщения электронной почты с вложениями и строковые файлы, которые являются .txt-файлами, однако я не могу отправлять stringattachments с помощью PDF. Письмо отправляется, но PDF поврежден/не может быть открыт. Может ли кто-нибудь помочь отправить AddStringAttachment с вложением в формате PDF, а не с .txt? БлагодаряPHPMailer AddStringAttachment с PDF

<?php 

require_once('class.phpmailer.php'); 
$mail = new PHPMailer(); 

$body2 = "You are receiving this email because the Transfer Application submitted for $Name transferring to $Receiving is missing required documentation. 
Please see the note below for details. The transfer application will not be reviewed until all of the necessary materials are received by the UHSAA. 

    <p> Details: 
     $Notes "; 

$mail->IsSMTP(); 
$mail->AddAddress($emailp); 
$mail->AddCC('[email protected]'); 
$mail->AddStringAttachment($body2, 'Filename.pdf', 'base64', 'application/octet-stream'); 

$mail->Subject = "Test"; 
$body = ("See attachment"); 
$mail->MsgHTML($body); 
$mail->AddAddress($address); 
$mail->AddCC($address); 
if(!$mail->Send()) 

; 
?> 

Опять же, если я просто изменить Filename.pdf на Filename.txt все работает так, я предполагаю, что проблема с кодировкой, но я не могу понять это. Пожалуйста, помогите, чтобы я мог отправлять PDF-файлы stringattachment. Благодарю.

+3

"приложения/октет-поток", * .pdf. Нет его нет, его строка текста, называя его pdf, не волшебным образом делает его одним. –

+0

Я попробовал 'application/pdf', но это дало мне ту же ошибку при попытке открыть pdf-файл по электронной почте как «приложение/октет-поток». – user2233333

+2

его не pdf, никогда не будет pdf его строка текста. –

ответ

6

Попробуйте

$mail->AddStringAttachment($body2, 'Filename.pdf', 'base64', 'application/pdf'); 

он будет работать

+0

Не нужно указывать кодировку и тип MIME - оба будут установлены автоматически. – Synchro

+0

его не работает, оба кода: $ mail-> AddStringAttachment ($ body2, 'Filename.pdf', 'base64', 'application/octet-stream'); $ mail-> addStringAttachment ($ body2, 'vouchers.pdf'); – rupesh

+0

$ mail-> AddStringAttachment ($ body2, 'Filename.pdf', 'base64', 'application/pdf'); даже это не работает – rupesh

10

Нет необходимости chunk_split base64encode строку в формате PDF вобще

$mail->addStringAttachment($pdfString, 'vouchers.pdf'); 
Смежные вопросы