A super simple Swift e-mail composer package
SwiftyEmail is a mini library for iOS, iPadOS and Mac Catalyst using MessageUI. With SwiftyEmail, you’ll be able to send e-mails from your app calling your user’s favorite e-mail app (including third party ones!).
✨ Features
- Send E-mails: Easily send e-mails from your app by calling the correct e-mail app.
- Third-Party Apps: Send e-mails with Gmail, Yahoo Mail, Spark or Outlook. We’ve got you covered with Mail, also!
- Simple: Just call a single method and you’re done.
- Built Swifty and with lightweight in mind.
- 100% Swift.
- Documented.
? Get Started
Using SwiftyEmail in Production Code
Just import SwiftyEmail:
import SwiftyEmail
Add the LSApplicationQueriesSchemes key to your Info.plist. It’s an array with four strings.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlegmail</string>
<string>ms-outlook</string>
<string>readdle-spark</string>
<string>ymail</string>
</array>
It should look like this:
Okay! ? Now, you can use it as you please. Use it like this:
SwiftyEmail.shared.sendEmail(subject: "Your order has been processed!",
body: "This is just an example for an e-mail body.",
recipient: "johndoe@gmail.com") { result in
switch result {
case .success(let emailWasSent):
print("The viewController was presented and the email \(emailWasSent)")
case .failure(let error):
print(error.localizedDescription)
}
}
Then, the user’s e-mail app is going to be called if the result is a success, with all the data provided.
Always remember that the e-mail has a subject, a body and a recipient, as well as the result for presenting the e-mail app.
? Swift Package Manager
You can also add this library using Swift Package Manager.
- Go to File > Add Packages.
- The Add Package dialog will appear, by default with Apple packages.
- In the upper right hand corner, paste https://github.com/MarcosAtMorais/SwiftyEmail into the search bar.
- Hit Return to kick off the search.
- Click Add Package.
- You’re all set! Just import SwiftyEmail whenever and wherever you want to use it.
? Requirements
iOS 13+
iPadOS 13+
Mac Catalyst 13+