SQL Server
SQL Server
Create GMail Draft
See more GMail REST API Examples
Demonstrates how to create a new GMail draft email.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- Use the Chilkat Email API to create or load an email.
DECLARE @email int
EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OASetProperty @email, 'Subject', 'This is a test GMail email created using Chilkat.'
EXEC sp_OASetProperty @email, 'Charset', 'utf-8'
EXEC sp_OAMethod @email, 'AddPlainTextAlternativeBody', @success OUT, 'This is a test'
EXEC sp_OAMethod @email, 'AddHtmlAlternativeBody', @success OUT, '<html><body><p>This is a <b>test</b></body></html>'
-- We'll need to get the full MIME of the email encoded to a base64url string.
DECLARE @sbMime int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbMime OUT
EXEC sp_OAMethod @email, 'GetMimeSb', @success OUT, @sbMime
EXEC sp_OAMethod @sbMime, 'Encode', @success OUT, 'base64url', 'utf-8'
-- The body of the HTTP request will be JSON..
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'UpdateSb', @success OUT, 'message.raw', @sbMime
-- Upload the email to GMail as a draft.
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
EXEC sp_OASetProperty @http, 'AuthToken', 'GMAIL-ACCESS-TOKEN'
DECLARE @url nvarchar(4000)
SELECT @url = 'https://www.googleapis.com/gmail/v1/users/me/drafts'
DECLARE @resp int
EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
EXEC sp_OAMethod @http, 'HttpJson', @success OUT, 'POST', @url, @json, 'application/json', @resp
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @email
EXEC @hr = sp_OADestroy @sbMime
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @resp
RETURN
END
-- A status code of 200 indicates success.
EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT
PRINT 'Response status code: ' + @iTmp0
PRINT 'Response body:'
EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
PRINT @sTmp0
-- The response body contains JSON.
-- Use the online tool at Generate JSON Parsing Code
-- to generate JSON parsing code.
-- A sample successful JSON response:
-- {
-- "id": "r-2607584557788895307",
-- "message": {
-- "id": "166f09932c662e93",
-- "threadId": "166f09932c662e93",
-- "labelIds": [
-- "DRAFT"
-- ]
-- }
-- }
EXEC @hr = sp_OADestroy @email
EXEC @hr = sp_OADestroy @sbMime
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @resp
END
GO