私はdompdfを使用してpdfファイルを動的に生成し、それらを電子メールに添付して送信しています。しかし、メールでは常に添付ファイルが 0 バイトとして取得されます。Cake の tmp フォルダーの下にファイルを作成していますが、正常に作成されています。Cakephp 2.x を使用し、CakeEmail を使用してメールを送信しています。dompdf フォルダーは plugin フォルダーにあります。lib/fonts ディレクトリに必要な権限を与えました。作成直後は添付ファイルとして送信されません。Cakeemail がファイルの内容を取得できなかった (しかしファイルは存在する) dompdf を使用しているときに、何らかのロック/遅延が発生するかどうか。
App::uses('CakePdf', 'CakePdf.Pdf');
$CakePdf = new CakePdf();
$orderDetails = array('1' => 'myproduct');
$CakePdf->viewVars(compact('orderDetails'));
$CakePdf->template('view_ticket_pdf', 'default');
$filename = TMP . $data['Billing']['order_id'] . '.pdf';
$pdf = $CakePdf->output();
$CakePdf->write( $filename);
$email = new CakeEmail('smtp');
$desc = $email->template('order_mail');
$email->emailFormat('html');
$email->from(array(ADMIN_EMAIL => 'Admin'));
$email->to('user@gmail.com');
$email->attachments(array($filename));
$email->subject('Your order');
$content = $email->send();
私はfread()としてエラーを受け取ります:CakeEmailのLengthパラメータは0より大きい必要があります. pdf の代わりに、サンプルのテキスト ファイルを作成すると、添付されてサイズが 0 より大きくなります。pdf の作成には github.com/ceeram/CakePdf プラグインを使用しています。