# Attachments

Files can be attached to an e-mail using the `createAttachment()` method. The default behavior of `Zend_Mail` is to assume the attachment is a binary object (application/octet-stream), that it should be transferred with base64 encoding, and that it is handled as an attachment. These assumptions can be overridden by passing more parameters to `createAttachment()`:

## E-Mail Messages with Attachments

    $mail = new Zend_Mail();
    // build message...
    $mail->createAttachment($someBinaryString);
    $mail->createAttachment($myImage,
                            'image/gif',
                            Zend_Mime::DISPOSITION_INLINE,
                            Zend_Mime::ENCODING_BASE64);

If you want more control over the MIME part generated for this attachment you can use the return value of `createAttachment()` to modify its attributes. The `createAttachment()` method returns a `Zend_Mime_Part` object:

    $mail = new Zend_Mail();

    $at = $mail->createAttachment($myImage);
    $at->type        = 'image/gif';
    $at->disposition = Zend_Mime::DISPOSITION_INLINE;
    $at->encoding    = Zend_Mime::ENCODING_BASE64;
    $at->filename    = 'test.gif';

    $mail->send();

An alternative is to create an instance of `Zend_Mime_Part` and add it with `addAttachment()`:

    $mail = new Zend_Mail();

    $at = new Zend_Mime_Part($myImage);
    $at->type        = 'image/gif';
    $at->disposition = Zend_Mime::DISPOSITION_INLINE;
    $at->encoding    = Zend_Mime::ENCODING_BASE64;
    $at->filename    = 'test.gif';

    $mail->addAttachment($at);

    $mail->send();