E-mail Attachments

In ZF1 files could be attached to an e-mail using Zend_Mail::createAttachment() and Zend_Mail::addAttachment() methods.

In ZF2 these methods are not available anymore, so the correct way of dealing with multipart e-mails is using the Zend\Mime package.

Using Zend\Mime\Part

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
Use Zend\Mime, Zend\Mail\Message;

// first create the parts
$text = new Mime\Part();
$text->type = Mime\Mime::TYPE_TEXT;
$text->charset = 'utf-8';

$fileContent = fopen($somefilePath, 'r');
$attachment = new Mime\Part($fileContent);
$attachment->type = 'image/jpg';
$attachment->filename = 'image-file-name.jpg';
$attachment->disposition = Mime\Mime::DISPOSITION_ATTACHMENT;
// Setting the encoding is recommended for binary data
$attachment->encoding = Mime\Mime::ENCODING_BASE64;

// then add them to a MIME message
$mimeMessage = new Mime\Message();
$mimeMessage->setParts(array($text, $attachment));

// and finally we create the actual email
$message = new Message();
$message->setBody($mimeMessage);

Please see Zend\Mail\Message documentation for more informations.

Table Of Contents

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to E-mail Attachments on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.