1

CakeEmail のヘルプ ページには、data オプションが 2.4 で追加されたため、電子メールに添付ファイルを追加するために物理ファイルを用意する必要がなくなったと記載されています。

私は次のコードを持っています:

$Email->from(array($this->Session->read('Auth.User.email') => $this->Session->read('Auth.User.name')))
->to($this->request->data['email-to'])
->subject($this->request->data['email-subject'])
->attachments(array('attachement1.pdf', array('data' => $pdf)))
->send($this->request->data['email-message']);

しかし、それを実行するたびに、File Not Found: "" という内部エラーが発生します。

4

1 に答える 1

4

私はソースコードを見ました(私が学び始めていることは、多くの場合、ドキュメントを読むよりも便利です!): https://github.com/cakephp/cakephp/blob/master/lib/Cake/Network/Email /CakeEmail.php

コードを次のように変更します。

$Email = new CakeEmail('default');
$Email->from(array($this->Session->read('Auth.User.email') => $this->Session->read('Auth.User.name')))
->to($this->request->data['email-to'])
->subject($this->request->data['email-subject'])
->attachments(array('attachement1.pdf' => array('data' => $pdf, 'mimetype' => 'application/pdf')))
->send($this->request->data['email-message']);

添付ファイルの行で、配列がパラメーターとして渡されるのではなく、ファイル名変数に割り当てられていることに注意してください。

完全を期すために、他の誰かがこれを読んでいて、CakePDF を使用して PDF をどのように生成しているのか疑問に思っている場合:

// Create PDF for attachment
$CakePdf = new CakePdf();
$CakePdf->template('claim', 'default');
//get the pdf string returned
$pdf = $CakePdf->output();
于 2013-09-17T09:04:30.377 に答える