如何使用Gmail api在swift中发送电子邮件

jos*_*405 3 email api ios swift gmail-api

Gmail的阿比对如何做到这一点,我一直在努力,没有清晰的文档,但有很多事情是在空气中.

我曾寻求过这样的外部资源.来源1来源2.第一个似乎使用api的潜力,使用该函数queryForUsersMessagesSendWithUploadParameters.

而第二个是多一点.尽管在Objective-C中这不是问题,但GTMMIMEDocument对象除外,它不知道在何处或是否获得它或库.

我的问题是,是否有人更容易理解更清洁和/或代码,或者更好的发送电子邮件的指南

jos*_*405 9

我找到了解决方案

class func sendEmail() {

        var gtlMessage = GTLGmailMessage()
        gtlMessage.raw = self.generateRawString()

        let appd = UIApplication.sharedApplication().delegate as! AppDelegate
        let query = GTLQueryGmail.queryForUsersMessagesSendWithUploadParameters(nil)
        query.message = gtlMessage

        appd.service.executeQuery(query, completionHandler: { (ticket, response, error) -> Void in
            println("ticket \(ticket)")
            println("response \(response)")
            println("error \(error)")
        })
    }

    class func generateRawString() -> String {

        var dateFormatter:NSDateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"; //RFC2822-Format
        var todayString:String = dateFormatter.stringFromDate(NSDate())

        var rawMessage = "" +
            "Date: \(todayString)\r\n" +
            "From: <mail>\r\n" +
            "To: username <mail>\r\n" +
            "Subject: Test send email\r\n\r\n" +
            "Test body"

        println("message \(rawMessage)")

        return GTLEncodeWebSafeBase64(rawMessage.dataUsingEncoding(NSUTF8StringEncoding))
    }
Run Code Online (Sandbox Code Playgroud)