How to mail image in swift 4

There are a few ways to send an image via email in Swift 4. Here are a few approaches:

Method 1: Using the MFMailComposeViewController

You can use the MFMailComposeViewController class to compose an email with an image attachment. Here's an example:

import MessageUI

// Create a new instance of MFMailComposeViewController
let mailComposer = MFMailComposeViewController()

// Set the subject and body of the email
mailComposer.setSubject("Image Attachment")
mailComposer.setMessageBody("This is a test email with an image attachment.", isHTML: false)

// Get the image you want to attach
let image = UIImage(named: "image.png")!

// Create a new instance of NSData with the image
let imageData = image.pngData()!

// Create a new instance of MFAttachment with the image data
let attachment = MFAttachment(data: imageData, filename: "image.png", mimeType: "image/png")

// Add the attachment to the email
mailComposer.addAttachment(attachment)

// Present the mail composer view controller
self.present(mailComposer, animated: true, completion: nil)

Method 2: Using the MFMessageComposeViewController

If you want to send the image via SMS instead of email, you can use the MFMessageComposeViewController class. Here's an example:

import MessageUI

// Create a new instance of MFMessageComposeViewController
let messageComposer = MFMessageComposeViewController()

// Set the recipient's phone number
messageComposer.recipients = ["+1234567890"]

// Get the image you want to send
let image = UIImage(named: "image.png")!

// Create a new instance of NSData with the image
let imageData = image.pngData()!

// Create a new instance of MFMessageComposeViewController's `MFSMSMessage` class
let message = MFSMSMessage()
message.body = "This is a test SMS with an image attachment."
message.addAttachment(imageData, withType: "image/png")

// Add the message to the message composer
messageComposer.messages = [message]

// Present the message composer view controller
self.present(messageComposer, animated: true, completion: nil)

Method 3: Using a third-party library

If you want to send the image via email or SMS using a third-party library, you can use a library like SwiftyEmailer or MessageKit. These libraries provide a more convenient and flexible way to send emails and SMS messages with attachments.

For example, with SwiftyEmailer, you can send an email with an image attachment like this:

import SwiftyEmailer

// Create a new instance of SwiftyEmailer
let emailer = SwiftyEmailer()

// Set the subject and body of the email
emailer.subject = "Image Attachment"
emailer.body = "This is a test email with an image attachment."

// Get the image you want to attach
let image = UIImage(named: "image.png")!

// Create a new instance of NSData with the image
let imageData = image.pngData()!

// Add the attachment to the email
emailer.addAttachment(imageData, withName: "image.png", mimeType: "image/png")

// Send the email
emailer.send(to: ["[email protected]"], from: "[email protected]")