且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何快速使用 Gmail api 发送电子邮件

更新时间:2022-11-16 23:33:56

我找到了解决方案

class func sendEmail() {var gtlMessage = GTLGmailMessage()gtlMessage.raw = self.generateRawString()让 appd = UIApplication.sharedApplication().delegate as!应用程序委托让查询 = GTLQueryGmail.queryForUsersMessagesSendWithUploadParameters(nil)query.message = gtlMessageappd.service.executeQuery(query, completionHandler: { (ticket, response, error) -> Void inprintln("票\(票)")println("响应\(响应)")println("错误\(错误)")})}类 func generateRawString() ->细绳 {var dateFormatter:NSDateFormatter = NSDateFormatter()dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z";//RFC2822-格式var todayString:String = dateFormatter.stringFromDate(NSDate())var rawMessage = "" +"日期:\(todayString)\r\n" +"发件人:\r\n" +"收件人:用户名 \r\n" +"主题:测试发送电子邮件\r\n\r\n" +测试体"println("消息\(rawMessage)")返回 GTLEncodeWebSafeBase64(rawMessage.dataUsingEncoding(NSUTF8StringEncoding))}

The Gmail Api has no clear documentation on how to do this, I have been trying with this but there are many things that are in the air.

I have sought external sources such. Source 1 and Source 2. The first seems to use the potential of the api, using the function queryForUsersMessagesSendWithUploadParameters.

While the second is about a little more. Although this in Objective-C is not a problem, except for the GTMMIMEDocument object, which do not know where or if it is obtained or a library.

My question is if someone has a somewhat cleaner and / or code easier to understand, or a better guide in which to send an email

I found the solution

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