email - How to insert a mail using the latest GMail API in Swift? -


so have following snippet:

var url = nsurl(string: "https://www.googleapis.com/upload/gmail/v1/users/me/messages?uploadtype=media&internaldatesource=dateheader")   var rawmessage = "" +     "date: thu, 25 sep 2014 18:35:28 -0700\r\n" +     "from: john appleseed <john@appleseed.com>\r\n" +     "to: steve jobs <steve@jobs.com>\r\n" +     "subject: 1 more thing\r\n\r\n" +     "some message"  var rawdata = rawmessage.datausingencoding(nsutf8stringencoding, allowlossyconversion: true)  var request = nsmutableurlrequest() request.url = url request.httpmethod = "post"  request.setvalue("bearer \(self.accesstoken!)", forhttpheaderfield: "authorization") request.setvalue("message/rfc822", forhttpheaderfield: "content-type") request.setvalue("\(rawdata?.length)", forhttpheaderfield: "content-length") request.httpbody = rawdata!  if let response = nsurlconnection.sendsynchronousrequest(request, returningresponse: nil, error: nil) {     println(nsstring(data: response, encoding: nsutf8stringencoding)) } 

this works, in documentation write sending message resource post body. this:

{"raw":base64encoded(data),"labelids":["label_1", "label_2"]} 

however if replace rawdata message data, not work.

so how can insert message , give labels?

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

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -