Is there a library "SKPSMTPMessage" for Swift?

2k Views Asked by At

Is there any SKPSMTPMessage library to use in Swift? earlier i have used this tutorial which is in objective - c. What I want to do is send a mail in background using Swift.

2

There are 2 best solutions below

0
On BEST ANSWER

I don't know any email sending library in Swift, but you can definitely use the one described in the Objective-C tutorial in your Swift application. All Objective-C libraries are cross-compatible with Swift code: just use a bridging header.

2
On

Simply integrate skpsmtpmessage with cocoa pods by adding:

pod 'skpsmtpmessage'

to your Podfile and then this is how you send an email from code:

import skpsmtpmessage

class MailSender: NSObject, SKPSMTPMessageDelegate {
    static let shared = MailSender()

    func sendEmail(subject: String, body: String) {
        let message = SKPSMTPMessage()
        message.relayHost = "smtp.gmail.com"
        message.login = "[email protected]"
        message.pass = "password"
        message.requiresAuth = true
        message.wantsSecure = true
        message.relayPorts = [587]
        message.fromEmail = "[email protected]"
        message.toEmail = "[email protected]"
        message.subject = subject
        let messagePart = [kSKPSMTPPartContentTypeKey: "text/plain; charset=UTF-8", kSKPSMTPPartMessageKey: body]
        message.parts = [messagePart]
        message.delegate = self
        message.send()
    }

    func messageSent(_ message: SKPSMTPMessage!) {
        print("Successfully sent email!")
    }

    func messageFailed(_ message: SKPSMTPMessage!, error: Error!) {
        print("Sending email failed!")
    }
}