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
(SQL Server) Outlook -- List Messages in a Specified FolderDemonstrates how to list the messages in a particular Outlook mailbox folder. Note: This example requires Chilkat v9.5.0.67 or greater. This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
-- 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) -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- Use your previously obtained access token here: -- See the following examples for getting an access token: -- Get Microsoft Graph OAuth2 Access Token (Azure AD v2.0 Endpoint). -- Get Microsoft Graph OAuth2 Access Token (Azure AD Endpoint). -- Refresh Access Token (Azure AD v2.0 Endpoint). -- Refresh Access Token (Azure AD Endpoint). EXEC sp_OASetProperty @http, 'AuthToken', 'MICROSOFT_GRAPH_ACCESS_TOKEN' DECLARE @sbResponse int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponse OUT -- Sends: GET /users/{user_id | userPrincipalName}/mailFolders/{folder_id}/messages -- Note: It is also possible to use the literal string "me" for the current logged-on user. -- For example: GET /me/mailFolders/{folder_id}/messages EXEC sp_OAMethod @http, 'ClearUrlVars', NULL DECLARE @success int EXEC sp_OAMethod @http, 'SetUrlVar', @success OUT, 'userPrincipalName', 'chilkatsoft@outlook.com' -- In this example, we'd like to get the messages in the folder "/Inbox/abc", -- but we must specify the corresponding folder_id. The best way to do this is to create -- a local map of folderPaths-to-folderIds. -- This example does it: Create Outlook Folder Map) DECLARE @htFolderMap int -- Use "Chilkat_9_5_0.Hashtable" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Hashtable', @htFolderMap OUT DECLARE @sbMap int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbMap OUT EXEC sp_OAMethod @sbMap, 'LoadFile', @success OUT, 'qa_data/outlook/folderMap.xml', 'utf-8' EXEC sp_OAMethod @htFolderMap, 'AddFromXmlSb', @success OUT, @sbMap -- Get the ID for the "/Inbox/abc" folder: DECLARE @folderId nvarchar(4000) EXEC sp_OAMethod @htFolderMap, 'LookupStr', @folderId OUT, '/Inbox/abc' EXEC sp_OAGetProperty @htFolderMap, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN PRINT 'Folder ID not found' EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @sbResponse EXEC @hr = sp_OADestroy @htFolderMap EXEC @hr = sp_OADestroy @sbMap RETURN END EXEC sp_OAMethod @http, 'SetUrlVar', @success OUT, 'folder_id', @folderId -- Send the request to list the messages. DECLARE @success int EXEC sp_OAMethod @http, 'QuickGetSb', @success OUT, 'https://graph.microsoft.com/v1.0/users/{$userPrincipalName}/mailFolders/{$folder_id}/messages', @sbResponse EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT IF (@success <> 1) and (@iTmp0 = 0) BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @sbResponse EXEC @hr = sp_OADestroy @htFolderMap EXEC @hr = sp_OADestroy @sbMap RETURN END DECLARE @json int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT EXEC sp_OAMethod @json, 'LoadSb', @success OUT, @sbResponse EXEC sp_OASetProperty @json, 'EmitCompact', 0 EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT PRINT 'Status code = ' + @iTmp0 EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT IF @iTmp0 <> 200 BEGIN EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT PRINT @sTmp0 PRINT 'Failed.' END -- In my test case, the raw JSON returned is shown below. -- Iterate over the messages to get information about each.. DECLARE @i int SELECT @i = 0 DECLARE @numMessages int EXEC sp_OAMethod @json, 'SizeOfArray', @numMessages OUT, 'value' WHILE @i < @numMessages BEGIN EXEC sp_OASetProperty @json, 'I', @i -- This is the id for the email message. -- For REST API calls that require particular email message id, this is what should be used.. DECLARE @messageId nvarchar(4000) EXEC sp_OAMethod @json, 'StringOf', @messageId OUT, 'value[i].id' PRINT 'id: ' + @messageId EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'value[i].from.emailAddress.name' PRINT 'From Name: ' + @sTmp0 EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'value[i].from.emailAddress.address' PRINT 'From Addr: ' + @sTmp0 DECLARE @numRecipients int EXEC sp_OAMethod @json, 'SizeOfArray', @numRecipients OUT, 'value[i].toRecipients' DECLARE @j int SELECT @j = 0 WHILE @j < @numRecipients BEGIN EXEC sp_OASetProperty @json, 'J', @j EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'value[i].toRecipients[j].emailAddress.name' PRINT 'To Name: ' + @sTmp0 EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'value[i].toRecipients[j].emailAddress.address' PRINT 'To Addr: ' + @sTmp0 SELECT @j = @j + 1 END EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'value[i].subject' PRINT 'Subject: ' + @sTmp0 EXEC sp_OAMethod @json, 'BoolOf', @iTmp0 OUT, 'value[i].hasAttachments' PRINT 'Has Attachments:' + @iTmp0 EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'value[i].body.contentType' PRINT 'Body Content-Type:' + @sTmp0 DECLARE @bodyContent nvarchar(4000) EXEC sp_OAMethod @json, 'StringOf', @bodyContent OUT, 'value[i].body.content' -- ... PRINT '----' SELECT @i = @i + 1 END -- The output of the above loop: -- id: AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2wAAAA== -- From Name: Chilkat Software -- From Addr: support@chilkatsoft.com -- To Name: Chilkat Software -- To Addr: chilkatsoft@outlook.com -- Subject: email with attachments -- Has Attachments:True -- Body Content-Type:html -- ---- -- id: AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2gAAAA== -- From Name: Chilkat Software -- From Addr: support@chilkatsoft.com -- To Name: Chilkat Software -- To Addr: chilkatsoft@outlook.com -- To Name: admin@chilkat.io -- To Addr: admin@chilkat.io -- Subject: Re: Test HTML email with embedded images. -- Has Attachments:False -- Body Content-Type:html -- ---- -- id: AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2QAAAA== -- From Name: Chilkat Software -- From Addr: support@chilkatsoft.com -- To Name: chilkatsoft@outlook.com -- To Addr: chilkatsoft@outlook.com -- To Name: admin@chilkat.io -- To Addr: admin@chilkat.io -- Subject: Test HTML email with embedded images. -- Has Attachments:False -- Body Content-Type:html -- ---- -- ------------------------------------------------------ -- This is the raw JSON response: -- { -- "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('chilkatsoft%40outlook.com')/mailFolders('AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAAA%3D')/messages", -- "value": [ -- { -- "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADBQ0bb\"", -- "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2wAAAA==", -- "createdDateTime": "2017-05-10T00:27:40Z", -- "lastModifiedDateTime": "2017-05-10T00:30:51Z", -- "changeKey": "CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADBQ0bb", -- "categories": [ -- ], -- "receivedDateTime": "2017-05-10T00:27:41Z", -- "sentDateTime": "2017-05-10T00:27:12Z", -- "hasAttachments": true, -- "internetMessageId": "<9a65d233-0882-d346-f405-202a8b1a3acd@chilkatsoft.com>", -- "subject": "email with attachments", -- "bodyPreview": "This email has attachments...", -- "importance": "normal", -- "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAAA=", -- "conversationId": "AQQkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAQABQcNI8CG1xKpGjzxJTpoOE=", -- "isDeliveryReceiptRequested": null, -- "isReadReceiptRequested": false, -- "isRead": true, -- "isDraft": false, -- "webLink": "https://outlook.live.com/owa/?ItemID=AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5%2BvF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2wAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem", -- "inferenceClassification": "focused", -- "body": { -- "contentType": "html", -- "content": "<html>...</html>\r\n" -- }, -- "sender": { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "support@chilkatsoft.com" -- } -- }, -- "from": { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "support@chilkatsoft.com" -- } -- }, -- "toRecipients": [ -- { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "chilkatsoft@outlook.com" -- } -- } -- ], -- "ccRecipients": [ -- ], -- "bccRecipients": [ -- ], -- "replyTo": [ -- ] -- }, -- { -- "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADBQ0bZ\"", -- "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2gAAAA==", -- "createdDateTime": "2017-05-10T00:25:28Z", -- "lastModifiedDateTime": "2017-05-10T00:25:44Z", -- "changeKey": "CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADBQ0bZ", -- "categories": [ -- ], -- "receivedDateTime": "2017-05-10T00:25:28Z", -- "sentDateTime": "2017-05-10T00:25:10Z", -- "hasAttachments": false, -- "internetMessageId": "<707ff357-28ea-7ebd-9409-f46d752e871f@chilkatsoft.com>", -- "subject": "Re: Test HTML email with embedded images.", -- "bodyPreview": "My reply...", -- "importance": "normal", -- "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAAA=", -- "conversationId": "AQQkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAQACYVrc_6yptKn9tuOqBiUMQ=", -- "isDeliveryReceiptRequested": null, -- "isReadReceiptRequested": false, -- "isRead": true, -- "isDraft": false, -- "webLink": "https://outlook.live.com/owa/?ItemID=AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5%2BvF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2gAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem", -- "inferenceClassification": "focused", -- "body": { -- "contentType": "html", -- "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body bgcolor=\"#FFFFFF\">...</body>\r\n</html>\r\n" -- }, -- "sender": { -- "emailAddress": { -- "name": "Chilkat Software", -- -- "address": "support@chilkatsoft.com" -- } -- }, -- "from": { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "support@chilkatsoft.com" -- } -- }, -- "toRecipients": [ -- { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "chilkatsoft@outlook.com" -- } -- }, -- { -- "emailAddress": { -- "name": "admin@chilkat.io", -- "address": "admin@chilkat.io" -- } -- } -- ], -- "ccRecipients": [ -- { -- "emailAddress": { -- "name": "Matt Smith", -- "address": "chilkat.support@gmail.com" -- } -- } -- ], -- "bccRecipients": [ -- ], -- "replyTo": [ -- ] -- }, -- { -- "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADBQ0bY\"", -- "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2QAAAA==", -- "createdDateTime": "2017-05-10T00:22:23Z", -- "lastModifiedDateTime": "2017-05-10T00:22:45Z", -- "changeKey": "CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADBQ0bY", -- "categories": [ -- ], -- "receivedDateTime": "2017-05-10T00:22:23Z", -- "sentDateTime": "2017-05-10T00:22:03Z", -- "hasAttachments": false, -- "internetMessageId": "<4da724c6-fa94-5516-81d5-9cdf152eddc5@chilkatsoft.com>", -- "subject": "Test HTML email with embedded images.", -- "bodyPreview": "This is a test email with images...", -- "importance": "normal", -- "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAAA=", -- "conversationId": "AQQkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAQACYVrc_6yptKn9tuOqBiUMQ=", -- "isDeliveryReceiptRequested": null, -- "isReadReceiptRequested": false, -- "isRead": true, -- "isDraft": false, -- "webLink": "https://outlook.live.com/owa/?ItemID=AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5%2BvF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2QAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem", -- "inferenceClassification": "focused", -- "body": { -- "contentType": "html", -- "content": "<html>...</html>\r\n" -- }, -- "sender": { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "support@chilkatsoft.com" -- } -- }, -- "from": { -- "emailAddress": { -- "name": "Chilkat Software", -- "address": "support@chilkatsoft.com" -- } -- }, -- "toRecipients": [ -- { -- "emailAddress": { -- "name": "chilkatsoft@outlook.com", -- "address": "chilkatsoft@outlook.com" -- } -- }, -- { -- "emailAddress": { -- "name": "admin@chilkat.io", -- "address": "admin@chilkat.io" -- } -- } -- ], -- "ccRecipients": [ -- { -- "emailAddress": { -- "name": "Matt Smith", -- "address": "chilkat.support@gmail.com" -- } -- } -- ], -- "bccRecipients": [ -- ], -- "replyTo": [ -- ] -- } -- ] -- -- } EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @sbResponse EXEC @hr = sp_OADestroy @htFolderMap EXEC @hr = sp_OADestroy @sbMap EXEC @hr = sp_OADestroy @json END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.