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
Post a Comment