Whatever message this page gives is out now! Go check it out!

cfexchangeconnection

Last update:
May 18, 2026

Description

Opens or closes a persistent connection to a Microsoft Exchange server, or gets information about mailbox subfolders. You must have a persistent or temporary connection to use the cfexchangecalendar, cfexchangecontact, cfexchangemail, and cfexchangetask tags.

History

ColdFusion (2025 release): A new attribute access_token is added to the tag which allows exchange online connection. View the section Exchange online with cfexchangeconnection for more information.
ColdFusion (2018 release) Update 2: Added support for Microsoft Exchange Server 2016.
ColdFusion 10: Added the attribute serverVersion.
ColdFusion 8: Added this tag.

Category

Syntax

open <cfexchangeconnection required action = "open" connection = "connection ID"> server = "Exchange server ID" username = "Exchange user ID"> optional
access_token="token" ExchangeApplicationName = "Application name" ExchangeServerLanguage = "Language name" formBasedAuthentication = "no|yes"> formBasedAuthenticationURL = "URL"> mailboxName = "Exchange mailbox"> password = "user password" port = "IP port" protocol = "http|https" proxyHost = "proxy host URL" proxyPort = "proxy IP port"
getSubfolders <cfexchangeconnection required action = "getSubfolders" connection = "connection ID"> name = "query name" optional folder = "Exchange folder path"> recurse = "no|yes"> OR <cfexchangeconnection required action = "getSubfolders" name = "query name" server = "Exchange server ID" username = "Exchange user ID"> optional ExchangeApplicationName = "Application name" ExchangeServerLanguage = "Language name" folder = "Exchange folder path"> formBasedAuthentication = "no|yes"> formBasedAuthenticationURL = "URL"> mailboxName = "Exchange mailbox"> password = "user password" port = "IP port" protocol = "http|https" proxyHost = "proxy host URL" proxyPort = "proxy IP port" recurse = "no|yes"> close <cfexchangeconnection required action = "close" connection = "connection ID">
Note: You can specify this tag's attributes in an attributeCollection attribute whose value is a structure. Specify the structure name in the attributeCollection attribute and use the tag's attribute names as structure keys.

See also

Attributes

AttributeActionReq/OptDefaultDescription
action
all
Required
The action to take. Must be one of the following values:
  • open: Open a new persistent named connection
  • close: Close a named connection
  • getSubfolders: Get information about the subfolders of a specific folder.
access_token Optional An oauth access token built with Microsoft Graph API scopes that is required to connect with exchange online.
connection
all
Required for open and close actions
The name of the connection. You can specify this ID in any tag that you use with the open connection.
ExchangeApplicationName
opengetSubfolders
Optional
exchange
The name of the Exchange application to use in the URL that accesses the server. Specify this attribute if your IIS server does not use the default name for your Exchange application.
ExchangeServerLanguage
opengetSubfolders
Optional
english
The language of the Exchange server. If you are not sure, you can specify the empty string. For all values except english, including the empty string, the tag tries to get folder names from the server in the client's local language. In some cases, such as when there is a large amount of data on the server, it might take significant time to get folder names from Exchange server in the local language.
folder
getSubfolders
Optional
The root of the mailbox
The forward slash delimited path from the root of the mailbox to the folder for which to get subfolders. If a folder name contains a forward slash, use the xF8FF escape sequence to specify the character in the name.
formBasedAuthentication
opengetSubfolders
Optional
no
A Boolean value that specifies whether to display a login form and use form based authentication when making the connection. If the attribute value is no (the default), and the Exchange server returns a 440  error status when ColdFusion tries to connect, ColdFusion displays the login form and attempts to use form based authentication. Therefore, you can safely omit this attribute if you do not know if the server requires form based authentication.
formBasedAuthenticationURL
opengetSubfolders
Optional
The URL to which to post the user ID and password when an Exchange server uses form-based authentication. Use this attribute only if your Exchange server does not use default URL for form-based authentication. The default URL has the form https://exchangeServer/exchweb/bin/ auth/owaauth.dll, for example, {{
}}.
mailboxName
opengetSubfolders
Optional
The ID of the Exchange mailbox to use. Specify this attribute to access a mailbox whose owner has delegated access rights to the account specified in the username attribute.
name
getSubfolders
Required
The name of the ColdFusion query variable that contains information about the subfolders.
password
opengetSubfolders
Optional
The user's password for accessing the Exchange server.
port
opengetSubfolders
Optional
80
The port the server listens to, most commonly port 80.
protocol
opengetSubfolders
Optional
http
The protocol to use for the connection. Valid values are http and https.
proxyHost
opengetSubfolders
Optional
The URL or IP address of a proxy host, if necessary for access to the network.
proxyPort
opengetSubfolders
Optional
The port on the proxy server to connect to, most commonly port 80.
recurse
getSubfolders
Optional
false
A Boolean value:
  • true: get information on the immediate subfolders of the specified folder only.
  • false: get information on all levels of subfolders of the specified folder.
server
opengetSubfolders
Required
The IP address or URL of the server that is providing access to Exchange.
serverVersion
Optional
Specifies the Microsoft Exchange Server version. The values are:
  • 2013
  • 2016
  • 2019
The value you specify overrides the value that you specify at the application level.
username
opengetSubfolders
Required
The Exchange user ID.
Note: If you specify the getSubfolders action, you can specify the attributes that are listed as working for both the open and getSubfolders actions only if you do not specify a connection attribute.

Usage

The cfexchangeconnection tag can open or close a persistent connection with an Exchange server. If you use the cfexchangeconnection to open a connection before you use any cfexchangecalendar, cfexchangecontact, cfexchangemail, or cfexchangetask tags, you can use multiple tags to interact with the Exchange server without incurring the overhead of creating a connection for each tag.
Note: To establish any connection, the Exchange server must grant you Outlook Web Access. For information on how to enable this access, see Enabling access to the Exchange server in Managing connections to the Exchange server in the Developing ColdFusion Applications. Also, you cannot establish a connection to an Exchange server if you require a special authentication step, such as requiring a VPN PIN or performing biometric authentication, on a server that is outside your firewall, and the authentication server then routes the messages to your Exchange server inside the firewall.
Use the cfexchangeconnection tag to close a persistent connection when you are finished accessing the Exchange server. If you do not close the connection, it remains open and does not time out. The cfexchangecalendar, cfexchangecontact, cfexchangemail, and cfexchangetask tags also let you specify the open action connection attributes (but not the connection attribute) to create a temporary connection that lasts for the duration of the single tag's activities, without requiring you to use the cfexchangeconnection tag to create the connection. In this case, ColdFusion automatically closes the connection when the tag completes processing. The getSubfolders action can get information about the immediate subfolders of a specified folder (or of the top level of the mailbox), or information about all levels of subfolders. You must have a persistent connection to get the subfolders.
The query returned by the getSubfolders action has the following columns:
ColumnContents
FOLDERNAME
The name of the subfolder, for example, ColdFusion.
FOLDERPATH
The forward slash 
FOLDERSIZE
Size of the folder in bytes.
Note:  The ColdFusion exchange tags, including cfexchangeconnection use WebDAV to connect to the exchange server. HTTP access must be enabled on the exchange server to use the tags. Example
The following example opens a connection, gets all mail sent from spamsource.com, and deletes the messages from the Exchange server:

Exchange online with cfexchangeconnection

As Microsoft plans to discontinue EWS support for Exchange Online in October 2026, Support for Microsoft Graph API has been added. To access any of these resources in exchange online, an access token with appropriate scope is expected which will be accepted through access_token attribute in case of exchange online. In comparision with on prem it replaces your username and password. even the server is optional if you pass the access_token.
  1. Log in to the Microsoft Entra Admin center.
  2. Navigate to Azure Active Directory > App Registrations > New Registration.
  3. Provide an application name, select supported account types, and configure the redirect URI. See Register an application with the Microsoft identity platform for more information.
  4. After registering the app, note the Application (Client) ID and Directory (Tenant) ID.
Generate the access tokens with specific permissions required by the application.
Comparison of on-prem and online deployments:
<cfexchangeconnection 
    action="open" 
    connection="old-connection" 
    username="your-email@example.com" 
    password="your-password" 
    server="https://outlook.office365.com/EWS/Exchange.asmx" 
    protocol="https" 
    applicationname="MyExchangeApp" 
>
In the above case the username, password, and application are part of access token generation, and the protocol is always https for online which results in the following example scenario which is what should be used to connect with Exchange online.
<cfexchangeConnection 
    action="open" 
    access_token="#application.token#" 
    connection="newconnection" 
>

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page