2011-11-09 12 views
7

SwiftMailer eki olarak TCPDF tarafından üretilen pdf nasıl gönderilir, (benim için) en yakın şu şekilde görünmelidir:Zaten çeşitli çözümler çalıştı

$file = $pdf->Output('', 'E'); 
$message->attach(Swift_Attachment::newInstance($file, 'name.pdf', 'application/pdf')); 

$pdfTCPDF ve $message bir örneğidir Swift_Message bir örneğidir . E-postanın yukarısını kullanarak e-posta gönderiliyor, dosya ekleniyor ama açmaya çalıştığımda, dosyanın bozuk veya hatalı kodlanmış olduğunu belirten bir hata mesajı alıyorum.

Sorum şu: sunucuya dosya kaydetme ve e-posta gönderdikten sonra silmeden SwiftMailer eki olarak TCPDF tarafından üretilen pdf nasıl gönderileceği. Here, TCPDF çıktı yöntemi belgelerinin bağlantısıdır, belki birileri özlediğim bir şeyi görebilir.

cevap

0

Bunu denediniz mi?

$file = $pdf->Output('', 'S'); 

ben PHP başka posta arka uç ile yapıyorum ve bu işi yapar. Posta arka ucunun eki kodlamaya özen gösterdiğinden, bunu base64 olarak manuel olarak kodlamaya gerek yoktur.

+0

Zaten bunu denedim, tekrar denedim ve hala çalışmıyor (aynı hata msg) – matino

+0

Dosyayı dosya sistemine kaydederseniz, açabilir misiniz? Eğer evet ise, o zaman bir hızlı-hata-arızasıdır. O zaman en azından nereye bakacağını biliyorsun. – Markus

+0

Dosyayı kaydedip $ message-> attach (Swift_Attachment :: fromPath ($ path)) ile iliştirirseniz; o zaman herşey yolunda – matino

4

TCPDF'leri anında takarken sorun yaşamadım.

$message->attach(Swift_Attachment::newInstance() 
    ->setFilename('TE_Invoice.pdf') 
    ->setContentType('application/pdf') 
    ->setBody($val['file'])); 

$val['file'] döndürülen değer şudur:

return $pdf->Output('TE_Invoice.pdf', 'S');

kullanıyorum dosya eklemek:

Sonunda Çıktı türü 'S' kullanarak PDF döndüren bir işlevi çağırmak yukarıdaki. 5.9.134 ve Swift Mailer Versiyon:

Ben TCPDF Versiyon kullanıyorum böyle bir şey kullanıyorum 4.1.3

+0

Ben böyle yapmaya çalıştım ama e-posta pdf opend ettikten sonra bu dosya bozuk veya kötü kodlanmış hata mesajı olsun ... – matino

8

ve çalışıyor. PDF içeriği için PDF kitaplığındaki en basit örneklerden birini kullanıyorum.

[...] 
$pdf_as_string = $pdf->Output('', 'S'); // $pdf is a TCPDF instance 
[...] 
$transport = Swift_MailTransport::newInstance(); // using php mail function 
$message->setTo(array(
    "[email protected]" => "Main Email", 
    "[email protected]" => "Secondary Email" 
)); 
$message->setSubject("This email is sent using Swift Mailer"); 
$message->setBody("You're our best client ever."); 
$message->setFrom("[email protected]", "Developers United"); 
$attachment = Swift_Attachment::newInstance($pdf_as_string, 'my-file.pdf', 'application/pdf'); 
$message->attach($attachment); 
[...] 

Belki bu cevabı ben swiftmailer v4_3_0 ve TCPDF v6_0_002 kullanıyorum geç beri biraz geliyor. Ama sadece durumda birine değer.

+0

Bu yardımcı oldu, teşekkürler. – afinom

+0

Bu da MPDF için çalıştı. Çok teşekkürler. İşte bir referans: http://stackoverflow.com/a/34785821/386579 –