Sample code for 30+ languages & platforms
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

AutoIt
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)
; ...