PowerBuilder
PowerBuilder
Insert Email into GMail Folder
See more GMail REST API Examples
Directly inserts a message into only this user's mailbox similar to IMAP APPEND, bypassing most scanning and classification. Does not send a message.This example will create a Chilkat Email object and upload/insert it into GMail. Then adds the "INBOX" label to the email to make it appear in INBOX
Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Email
oleobject loo_SbMime
oleobject loo_Http
oleobject loo_Resp
string ls_Url
oleobject loo_Json
string ls_Id
oleobject loo_Json2
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")
if li_rc < 0 then
destroy loo_Email
MessageBox("Error","Connecting to COM object failed")
return
end if
// This example chooses to load an email from a file.
li_Success = loo_Email.LoadEml("qa_data/eml/testEmail.eml")
if li_Success = 0 then
Write-Debug loo_Email.LastErrorText
destroy loo_Email
return
end if
// Get the email as MIME.
loo_SbMime = create oleobject
li_rc = loo_SbMime.ConnectToNewObject("Chilkat.StringBuilder")
loo_Email.GetMimeSb(loo_SbMime)
loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")
loo_Http.AuthToken = "GMAIL-ACCESS-TOKEN"
// Upload to GMail (does not send, but just inserts).
// IMPORTANT: After uploading/inserting, you won't see the message in the Inbox.
// In your web browser, if you go to "All Mail", you will see it.
ls_Url = "https://www.googleapis.com/upload/gmail/v1/users/me/messages?uploadType=media"
loo_Http.UncommonOptions = "SendGzipped"
li_Success = loo_Http.HttpSb("POST",ls_Url,loo_SbMime,"utf-8","message/rfc822",loo_Resp)
if li_Success = 0 then
Write-Debug loo_Http.LastErrorText
destroy loo_Email
destroy loo_SbMime
destroy loo_Http
destroy loo_Resp
return
end if
loo_Http.UncommonOptions = ""
// A status code of 200 indicates success.
Write-Debug "Response status code: " + string(loo_Resp.StatusCode)
Write-Debug "Response body:"
Write-Debug loo_Resp.BodyStr
// The response body contains JSON.
// A sample successful JSON response:
// {
// "id": "166f583051d36144",
// "threadId": "166f5529e079a456"
// }
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.Load(loo_Resp.BodyStr)
ls_Id = loo_Json.StringOf("id")
// Add the Inbox label to the inserted email so that it appears in Inbox.
Write-Debug "---- Adding the Inbox label to the newly inserted email. ----"
// Create the following JSON to be sent in a POST to modify labels for this message.
// {
// "addLabelIds": [
// "INBOX"
// ]
// }
loo_Json2 = create oleobject
li_rc = loo_Json2.ConnectToNewObject("Chilkat.JsonObject")
loo_Json2.UpdateString("addLabelIds[0]","INBOX")
loo_Http.SetUrlVar("id",ls_Id)
ls_Url = "https://www.googleapis.com/gmail/v1/users/me/messages/{$id}/modify"
li_Success = loo_Http.HttpJson("POST",ls_Url,loo_Json2,"application/json",loo_Resp)
if li_Success = 0 then
Write-Debug loo_Http.LastErrorText
destroy loo_Email
destroy loo_SbMime
destroy loo_Http
destroy loo_Resp
destroy loo_Json
destroy loo_Json2
return
end if
// A status code of 200 indicates success.
Write-Debug "Response status code: " + string(loo_Resp.StatusCode)
Write-Debug "Response body:"
Write-Debug loo_Resp.BodyStr
// The response body contains JSON.
// A sample successful JSON response:
// {
// "id": "166f583051d36144",
// "threadId": "166f583051d36144",
// "labelIds": [
// "INBOX"
// ]
// }
destroy loo_Email
destroy loo_SbMime
destroy loo_Http
destroy loo_Resp
destroy loo_Json
destroy loo_Json2