AutoIt
AutoIt
Download a Specific GMail Message into a Chilkat Email Object
See more GMail REST API Examples
Demonstrates how to download a GMail message into a Chilkat Email object.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oHttp = ObjCreate("Chilkat.Http")
$oHttp.AuthToken = "GMAIL-ACCESS-TOKEN"
; The id of the GMail message to download.
Local $sId = "166e50fed0b9b0cb"
Local $sUserId = "me"
$oHttp.SetUrlVar("userId","me")
$oHttp.SetUrlVar("id",$sId)
; Fetch the email.
Local $sUrl = "https://www.googleapis.com/gmail/v1/users/{$userId}/messages/{$id}?format=raw"
$oSbJson = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oHttp.DownloadSb($sUrl,"utf-8",$oSbJson)
If ($bSuccess <> True) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.LoadSb($oSbJson)
$oJson.EmitCompact = False
If ($oHttp.LastStatus <> 200) Then
ConsoleWrite($oJson.Emit() & @CRLF)
ConsoleWrite("Failed." & @CRLF)
Exit
EndIf
; The returned JSON contains something like this:
; {
; "id": "166e50fed0b9b0cb",
; "threadId": "166e50fed0b9b0cb",
; "labelIds": [
; "CATEGORY_SOCIAL",
; "INBOX"
; ],
; "snippet": "...",
; "historyId": "582477",
; "internalDate": "1541441317000",
; "sizeEstimate": 28603,
; "raw": "BASE64URL_CONTENT"
; }
; The RFC822 MIME of the email is contained in the "raw" as a base64URL encoded string.
; Let's decode and load into a Chilkat email object..
$oSbRaw = ObjCreate("Chilkat.StringBuilder")
$oJson.StringOfSb("raw",$oSbRaw)
$oSbRaw.Decode("base64url","utf-8")
$oEmail = ObjCreate("Chilkat.Email")
$oEmail.SetFromMimeSb($oSbRaw)
; Now we can use the email API to do whatever we desire..
ConsoleWrite("From: " & $oEmail.FromAddress & @CRLF)
ConsoleWrite("Subject: " & $oEmail.Subject & @CRLF)
; ...