所以目前我有以下代码段:
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: One 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))
}
但是在documentation中,他们写了关于向帖子正文发送消息资源的信息。看起来像这样:
{"raw":base64encoded(data),"labelIds":["Label_1", "Label_2"]}
但是,如果我将rawData替换为该消息数据,则它不起作用。
那么如何插入消息并为其添加一些标签?
答案 0 :(得分:0)
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))
}