<!--
{
  "availability" : [
    "iOS: 3.0.0 -",
    "iPadOS: 3.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MessageUI",
  "identifier" : "/documentation/MessageUI/MFMailComposeViewController/addAttachmentData(_:mimeType:fileName:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Message UI"
    ],
    "preciseIdentifier" : "c:objc(cs)MFMailComposeViewController(im)addAttachmentData:mimeType:fileName:"
  },
  "title" : "addAttachmentData(_:mimeType:fileName:)"
}
-->

# addAttachmentData(_:mimeType:fileName:)

Adds the specified data as an attachment to the message.

```
func addAttachmentData(_ attachment: Data, mimeType: String, fileName filename: String)
```

## Parameters

`attachment`

The data to attach. Typically, this is the contents of a file that you want to include. This parameter must not be `nil`.

`mimeType`

The MIME type of the specified data. (For example, the MIME type for a JPEG image is `image/jpeg`.) For a list of valid MIME types, see <http://www.iana.org/assignments/media-types/>. This parameter must not be `nil`.

`filename`

The preferred filename to associate with the data. This is the default name applied to the file when it is transferred to its destination. Any path separator (`/`) characters in the filename are converted to underscore (`_`) characters prior to transmission. This parameter must not be `nil`.

## Discussion

This method attaches the specified data after the message body, but before the user’s signature. You may attach multiple files (using different file names), but must do so prior to displaying the mail composition interface. Don’t call this method after presenting the interface to the user.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)