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

标签 ios swift api email gmail-api

Gmail Api没有关于如何执行此操作的明确文档,我一直在尝试 this但空气中有很多东西。

我已经寻求外部资源。 Source 1Source 2 .第一个似乎利用了 api 的潜力,使用函数 queryForUsersMessagesSendWithUploadParameters

而第二个大约多一点。虽然这在 Objective-C 中不是问题,但 GTMMIMEDocument 对象除外,它不知道从哪里或是否从库中获取。

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

最佳答案

我找到了解决方案

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))
    }

关于ios - 如何在 swift 中使用 Gmail api 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33259916/

相关文章:

asp.net - 当我将 ASP.NET HTTP-StatusCode 硬编码为 401 时,我总是跳到登录页面?

iOS UI 通知栏过渡

ios - Stripe - STPPaymentCardTextField - 如何添加邮政编码字段?

swift - 类型 'String' 的值没有成员索引

api - 通过 Rest API 在 twitter 上关注用户

Java API设计——内部设计

iOS 创建多列表格/网格

ios - 在 native iOS设置中更改位置权限时收到通知

swift - 生成特定数量的 SCNPlane [Swift、ARkit]

ios - 在 iOS 中实例化一个后台运行循环