Enables integration with a Microsoft Exchange server.
The component can also integrate with Exchange Online, but Microsoft will not allow any new systems to use EWS after September 30, 2022 so you should use the Microsoft Graph component when building new integrations against Exchange Online. Existing systems using the component will continue to work after this date.
Remember, Exchange's own id values (@ItemID) are both long (use at least varchar(300)) and case-sensitive.
By default the username and password from the encrypted credentials specified by the system setting ExchangeAccountCredentials are used to connect to the Exchange server.
When integrating with Exchange Online the component acts as an Azure Active Directory application. It does not require its own mailbox and instead uses impersonation to access the mailboxes of users and rooms.
You will need to register a new application for the component to use in the tenant that owns the mailboxes you should access.
Once the application has been granted the full_access_as_app
permission no specific configuration is needed when new users are added.
If you need to access shared mailboxes you will need to add the Mail.Read.Shared
permission.
Use https://outlook.office365.com
as ServerUrl.
Use https://login.microsoftonline.com/{GUID of tenant}
as Authority.
Use the application's client id as Username and its client secret as Password.
When integrating with an on-premises Exchange server (that is, a server running some version of Exchange Server) the component acts as a normal user. It requires its own mailbox and you must configure delegation for each other user's or room's mailbox that it shall access.
The component is capable of integrating with Exchange Server 2010, 2013, 2017 and 2019 as long as the Exchange Server has the latest service pack for its version installed.
SQL-statement to retrieve Exchange server requests (commands).
The component will poll the procedure for requests up to ten times, or until the procedure issues a RETURN without SELECT:ing any data.
You can output the tables containing actions (ReadEmail, DeleteItem, ...) in any order and do not need to follow the order they are documented.
Possible value | Description |
---|---|
null | The component wants commands to execute. |
Possible value | Description |
---|---|
app | Connect as an application. Used when integrating with Exchange Online. |
user | Connect as a user. Used when integrating with an on-premises Exchange server. |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
ReadEmail |
Possible value | Description |
---|---|
Count | Counts the attachments. (Default) |
Download |
Downloads all attachments. See the Attachment result call. |
Enumerate |
Gets attachment properties like file name, but not the attachment itself. See the Attachment result call. |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
ReadCalendar |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
ReadContact |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
ListFolders |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
WriteCalendar |
Possible value | Description |
---|---|
Busy | |
Free | |
Oof | Out of office |
Tentative |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
Accepted | |
Declined | |
NoResponse | |
Organizer | |
Tentative |
Possible value | Description |
---|---|
High | |
Low | |
Normal |
Possible value | Description |
---|---|
Confidential | (Seldom used) |
Normal | |
Personal | (Seldom used) |
Private |
Possible value | Description |
---|---|
WriteContact |
Possible value | Description |
---|---|
Calendar | The user's calendar. |
Contacts | The user's contacts folder. |
Inbox | The user's inbox. |
MessageFolderRoot | The user's mailbox. The folder containing the inbox, calendar, etc. |
PublicFoldersRoot | The root of the public folders on the Exchange server. In a Swedish outlook this folder is 'Gemensamma mappar/Alla gemensamma mappar' |
SentItems | The user's folder for sent email. |
Possible value | Description |
---|---|
DeleteItem |
SQL-statement that the component executes whenever an email has been downloaded from the server. The call is made once for every email downloaded, but if no emails are found then the call is still made once, with @itemid set to null.
Possible value | Description |
---|---|
reademail | The component is returing the result of a reademail action. |
Possible value | Description |
---|---|
0 | No Error |
1 | An error occured. See ErrorMessage. |
SQL-statement that the component executes whenever an attachment or attachment meta-data has been downloaded from the server.
Possible value | Description |
---|---|
readattachment | The component is returning an attachment fetched by a command. |
Possible value | Description |
---|---|
0 | No error. |
1 | An error occured. See ErrorMessage. |
SQL-statement that the component executes whenever a calendar item has been downloaded from the server. The call is made once for every calendar item downloaded, but if no items are found then the call is still made once, with @itemid set to null.
Possible value | Description |
---|---|
readcalendar | The component is returing the result of a readcalendar action. |
Possible value | Description |
---|---|
ACCEPTED | |
DECLINED | |
NORESPONSE | |
ORGANIZER | |
TENTATIVE | |
UNKNOWN |
Possible value | Description |
---|---|
BUSY | |
FREE | |
NODATA | when no value is set |
OOF | Out Of Office |
TENTATIVE |
Possible value | Description |
---|---|
0 | No error. |
1 | An error occured. See ErrorMessage. |
Possible value | Description |
---|---|
CANCELLED | |
CONFIRMED | |
NONE | |
TENTATIVE |
Possible value | Description |
---|---|
0 | Normal |
1 | High |
-1 | Low |
Possible value | Description |
---|---|
NULL | No reminder |
Possible value | Description |
---|---|
Confidential | (Seldom used) |
Normal | |
Personal | (Seldom used) |
Private |
SQL-statement that the component executes whenever a contact has been downloaded from the server. The call is made once for every contact downloaded, but if no contacts are found then the call is still made once, with @itemid set to null.
Possible value | Description |
---|---|
readcontact | The component is returing the result of a readcontact action. |
Possible value | Description |
---|---|
0 | No error. |
1 | An error occured. See ErrorMessage. |
SQL-statement that the component executes after searching for folders. The call is made once for every folder found, but if no folders are found then the call is still made once, with @itemid set to null.
Possible value | Description |
---|---|
listfolders | The component is returning the result of a listfolders action. |
Possible value | Description |
---|---|
0 | No error. |
1 | An error occured. See ErrorMessage. |
Possible value | Description |
---|---|
CalendarFolder | A calendar. Can only contain calendar events and other folders. |
ContactsFolder | A contact list. Can only contain contacts and other folders. |
Folder | A normal folder. |
Unknown | A search folder, a task list, or some other kind of special folder. You should not read to or write from this kind of folder. |
Possible value | Description |
---|---|
deleteitem | The component is returing the result of a deleteitem action. |
SQL-statement that the component executes whenever a contact has been updated or stored on the server.
Possible value | Description |
---|---|
WriteContact | The component is returing the result of a WriteContact action. |
Possible value | Description |
---|---|
0 | No error. |
1 | An error occured. See ErrorMessage. |
SQL-statement that the component executes whenever a calendar item has been updated or stored on the server.
Possible value | Description |
---|---|
WriteCalendar | The component is returing the result of a WriteCalendar action. |
SQL-statement that the component executes when all requests are finished.
Possible value | Description |
---|---|
finished | The component is done |
Allows you to validate the SQL parameters before any other SQL is run in the component. This call is only made if the SQL is a stored procedure and Validate parameters is checked.
Use this call to restrict which entries a user is allowed to view and edit, and to log which entries a user views.
Access to a menu item is normally controlled through functions and roles alone but some entities need more fine grained control. For example, a user may have access to the View Member menu item for normal members but not for members with a protected identity.
The menu items a user visits are always logged (in ADMINLogMenuItem) but for sensitive data you may need to log exactly what entries are viewed. Do the logging in this call as the common ways of viewing data (grid and InfoSQL) are not allowed to modify the database.
If you bind a scalar function instead of a stored procedure to this call then its name must end with '_GrantAccess'.