2011-10-31 26 views
10

DOMPDF経由でPDFに電子メールを添付する最も簡単な方法は何ですか?私は(それの一部)を使用していますDOMPDF - 作成したPDFを電子メールに添付

私のスクリプトの最後に以下の通りです:

$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->render();  
//below to save the pdf file - not needed if emailing pdf 
file_put_contents('/home/ststrave/public_html/pdf/STS_Brochure.pdf', $dompdf->output()); 
//below to open pdf in browser - required 
$dompdf->stream("STS_Brochure_".rand(10,1000).".pdf", array("Attachment" => false)); 
jexit(); 

だけ明確化のために - これはJoomlaの中で使用されています。

標準のPHPメール機能を使用すると、最も簡単で簡単な方法を理解できます。

乾杯;

+0

は、使用して見てきました[Joomlaの内蔵のメールオブジェクト](http://docs.joomla.org/How_to_send_email_from_components)? – BrianS

答えて

0

PHPのメール機能には、「標準」のファイル添付方法はありません。これはSMTPシステムへの極端なベアボーンインターフェイスで、ファイルを自分で添付するすべての作業を強制します。

PHPMailerまたはSwiftmailerを使用することを強くお勧めします。あなた自身のMIMEメールを生成し、添付ファイル(多くのコード行)を挿入するという重大な作業を減らすことができます。

どちらも、DOMPDFからストリーミングされたPDFを処理しないことに注意してください。 PDFを一時ファイルに保存して添付する必要があります。

+0

答えをありがとう...どうすればいいですか? – user991830

23

[OK]をクリックします。あなたは既に回答を受け入れていますが、他の誰かがここに来ると簡単な方法があると思いますが、PHPの標準的なメール機能ではありません。実際には動作しません。あなたがPearパッケージMailとMail_mimeを手に入れることができれば、添付ファイル付きの電子メールを送るのは本当に簡単です。あなたはまた、直接そのようなファイルを作成せずにDOMPDF出力を添付することができます。

$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->set_paper("letter", "portrait"); 
$dompdf->render(); 

$output = $dompdf->output(); 

$mm = new Mail_mime("\n"); 

$mm->setTxtBody($body); 
$mm->addAttachment($output,'application/pdf','output.pdf', false); 

$body = $mm->get(); 
$headers = $mm->headers(array('From'=>$from,'Subject'=>$subject)); 

$mail =& Mail::factory('mail'); 
if($mail->send($to,$headers,$body)){ 
    echo "Your message has been sent."; 
} 
関連する問題