2012-04-17 32 views
6

Có ai có thể cung cấp cho tôi một số ví dụ về cách thêm tệp đính kèm vào thành phần ZF2 Mail không?Tệp đính kèm Zend Mail 2.0

tôi đã làm như:

$message = new Message; 
$message->setEncoding('utf-8'); 
$message->setTo($email); 
$message->setReplyTo($replyTo); 
$message->setFrom($from); 
$message->setSubject($subject); 
$message->setBody($body); 

nhưng đã bị mắc kẹt khi cần thiết để thêm một tập tin đính kèm. Cảm ơn.

Trả lời

9

Để thêm tệp đính kèm, bạn chỉ cần tạo một phần MIME mới và thêm nó vào thư.

Ví dụ:

// create a new Zend\Mail\Message object 
$message = new Message; 

// create a MimeMessage object that will hold the mail body and any attachments 
$bodyPart = new MimeMessage; 

// create the attachment 
$attachment = new MimePart(fopen($pathToAttachment)); 
// or 
$attachment = new MimePart($attachmentContent); 

// set attachment content type 
$attachment->type = 'image/png'; 

// create the mime part for the message body 
// you can add one for text and one for html if needed 
$bodyMessage = new MimePart($body); 
$bodyMessage->type = 'text/html'; 

// add the message body and attachment(s) to the MimeMessage 
$bodyPart->setParts(array($bodyMessage, $attachment)); 

$message->setEncoding('utf-8') 
     ->setTo($email) 
     ->setReplyTo($replyTo) 
     ->setFrom($from) 
     ->setSubject($subject) 
     ->setBody($bodyPart); // set the body of the Mail to the MimeMessage with the mail content and attachment 

Dưới đây là một số tài liệu hữu ích về đề tài này: ZF2 - Zend\Mail

+0

tôi chưa xác minh nó nhưng nó có vẻ là một giải pháp làm việc vì tôi cũng cho rằng cần có một số thỏa thuận với Mime. Cảm ơn. –

+6

Tôi không biết tại sao quyết định được thực hiện để loại bỏ phương thức 'addAttachment' khỏi lớp Mail mà trong ZF1 sẽ tạo một phần mime mới cho bạn và thêm nó vào tin nhắn, bây giờ rõ ràng hơn một chút. – drew010

+2

Tôi nghĩ đáng nói ở đây là MimePart và MimeMessage mới trong ZF 2 hiện có trong Zend \ Mime \ Part và Zend \ Mime \ Message - vì vậy bạn sẽ phải sử dụng không gian tên của chúng cho phù hợp. –

Các vấn đề liên quan