Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) SendGrid -- Send Email with AttachmentSee more SendGrid ExamplesSends an email with an attachment. For more information, see https://sendgrid.com/docs/for-developers/sending-email/curl-examples/#sending-a-basic-email-with-attachment
IncludeFile "CkBinData.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkHttpResponse.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Implements the following CURL command: ; curl --request POST \ ; --url https://api.sendgrid.com/v3/mail/send \ ; --header 'authorization: Bearer YOUR_API_KEY' \ ; --header 'Content-Type: application/json' \ ; --data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sender@example.com"},"subject":"Hello, World!","content": [{"type": "text/html","value": "Hey,<br>Please find attachment."}], "attachments": [{"content": "BASE64_ENCODED_CONTENT", "type": "text/plain", "filename": "attachment.txt"}]}' ; Use the following online tool to generate HTTP code from a CURL command ; Convert a cURL Command to HTTP Source Code ; Use this online tool to generate code from sample JSON: ; Generate Code to Create JSON ; The following JSON is sent in the request body. ; { ; "personalizations": [ ; { ; "to": [ ; { ; "email": "recipient@example.com" ; } ; ] ; } ; ], ; "from": { ; "email": "sender@example.com" ; }, ; "subject": "Hello, World!", ; "content": [ ; { ; "type": "text/html", ; "value": "Hey,<br>Please find attachment." ; } ; ], ; "attachments": [ ; { ; "content": "BASE64_ENCODED_CONTENT", ; "type": "text/plain", ; "filename": "attachment.txt" ; } ; ] ; } json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"personalizations[0].to[0].email","recipient@example.com") CkJsonObject::ckUpdateString(json,"from.email","sender@example.com") CkJsonObject::ckUpdateString(json,"subject","Hello, World!") CkJsonObject::ckUpdateString(json,"content[0].type","text/html") CkJsonObject::ckUpdateString(json,"content[0].value","Hey,<br>Please find attachment.") ; Load a file to be attached. bd.i = CkBinData::ckCreate() If bd.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkBinData::ckLoadFile(bd,"qa_data/pdf/hello.pdf") CkJsonObject::ckUpdateString(json,"attachments[0].content",CkBinData::ckGetEncoded(bd,"base64")) CkJsonObject::ckUpdateString(json,"attachments[0].type","application/pdf") CkJsonObject::ckUpdateString(json,"attachments[0].filename","hello.pdf") CkHttp::ckSetRequestHeader(http,"Content-Type","application/json") ; Adds the "Authorization: Bearer YOUR_API_KEY" header. CkHttp::setCkAuthToken(http, "YOUR_API_KEY") resp.i = CkHttp::ckPostJson3(http,"https://api.sendgrid.com/v3/mail/send","application/json",json) If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkBinData::ckDispose(bd) ProcedureReturn EndIf respStatusCode.i = CkHttpResponse::ckStatusCode(resp) Debug "Response Status Code = " + Str(respStatusCode) If respStatusCode <> 202 Debug "Response Header:" Debug CkHttpResponse::ckHeader(resp) Debug "Response Body:" Debug CkHttpResponse::ckBodyStr(resp) Debug "Failed." CkHttpResponse::ckDispose(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkBinData::ckDispose(bd) ProcedureReturn EndIf CkHttpResponse::ckDispose(resp) Debug "Success." CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkBinData::ckDispose(bd) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.