# Email Experience Manager > XP documentation for developers, in English, version 10.3. - Product: XP - Audience: Developers - Language: English - Version: 10.3 - Status: Previous version - Canonical URL: https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager ## Overview - [Getting started with EXM for developers](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/getting-started-with-exm-for-developers.md): Overview of useful topics and resources available to help you get started with EXM development. ## Development - [Development](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/development.md) ### Defining general settings - [Defining general settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/defining-general-settings.md) - [The EXM configuration settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-configuration-settings.md): Overview of the default EXM settings available in the configuration files. - [Configure the EXM retryers](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configure-the-exm-retryers.md): Overview of the retryers used by EXM and how to configure them. - [The EXM connection pool settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-connection-pool-settings.md): How to change the default EXM connection pool settings by modifying the EDS configuration files. - [The emailRegexValidator and the urlRegexValidator settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-emailregexvalidator-and-the-urlregexvalidator-settings.md): Overview of the EXM settings used to verify that a string is in a valid email format. - [IIS access](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/iis-access.md): Overview of the IIS settings available in the EXM configuration file. - [EXM logging](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/exm-logging.md): How to view the log entries for EXM in the dedicated log file. - [Configure EXM in a scaled environment](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configure-exm-in-a-scaled-environment.md): How to configure EXM to work in a scaled environment including how to configure your Content Delivery and Content Management servers either manually or using scripts. - [Extracting data from earlier versions of EXM to create historical reports](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/extracting-data-from-earlier-versions-of-exm-to-create-historical-reports.md): How to extract Email Engagement Plan data from previous versions of EXM to use for historical reports. ### Message configuration - [Message configuration](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/message-configuration.md): How to configure custom message templates, define custom message types, and add content based on an import HTML file. - [The TypeResolver class](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-typeresolver-class.md): Overview of the message type classes in EXM. - [Configure insert options for message types](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configure-insert-options-for-message-types.md): Change the range of message templates that marketers can choose for each of the EXM default message types. - [Retrieving insert options for message types](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/retrieving-insert-options-for-message-types.md): Configure advanced settings that define how insert options are retrieved by the EXM module and represented in the UI. - [Creating a custom message type class](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/creating-a-custom-message-type-class.md): Create and use custom message types, which also requires a custom type resolver. - [Enabling marketers to add content to an email message based on an imported HTML file](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/enabling-marketers-to-add-content-to-an-email-message-based-on-an-imported-html-file.md): Add a placeholder in the HTML file to enable marketers to edit parts of a message that was created from an HTML template. - [Link generation and hostname mapping in EXM](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/link-generation-and-hostname-mapping-in-exm.md): EXM checks that links in an email message is an absolute URL that points to the publicly accessible content delivery servers. - [Detecting an EXM request](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/detecting-an-exm-request.md): Display different layouts by determining if EXM is requesting the message body or if it is a normal page request. - [Walkthrough: Building a custom message template](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/walkthrough--building-a-custom-message-template.md): How to use EXM to build a custom message template for your email campaign. ### Subscription management - [Subscription management](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/subscription-management.md): How to manage all aspects of the email campaign from the email message to the email delivery as well as all aspects of the email subscriptions. - [The configuration settings for collecting bounces](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-configuration-settings-for-collecting-bounces.md): The Sitecore Application Center collects delivery status notifications when the message delivery fails and passes them to EXM. - [Configuring the global opt-out list](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configuring-the-global-opt-out-list.md): You must define a global opt-out list for each manager root in EXM to list users who unsubscribed from all mailings. - [The EXM double opt-in process](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-double-opt-in-process.md): Set up and customize a double opt-in subscription process. - [The Email Experience Manager Client API](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-email-experience-manager-client-api.md): Use the Email Experience Manager Client API to manage subscriptions. - [Configure the Preference Center](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configure-the-preference-center.md): Using the Preference Center, customers can opt in or out of email campaigns. - [The service messages](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-service-messages.md): Set up services messages to receive notifications from contacts who, for example, want to unsubscribe from your email campaigns. - [The unsubscribe options](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-unsubscribe-options.md): The default email campaign templates contain links that allow recipients to unsubscribe from future email campaigns. ### Tokens - [Tokens](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/tokens.md) - [Configuring the token map](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configuring-the-token-map.md): Control how tokens are replaced with the data, EXM uses a token map class, which binds tokens and recipient profiles. - [Create a custom personalization token](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/create-a-custom-personalization-token.md): Create custom personalization tokens that you can replace with appropriate values from user profiles. - [Extending the getContact pipeline](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/extending-the-getcontact-pipeline.md): Code sample to create a custom personalization token that can be used in Preview mode. - [Create a pipeline processor to convert form data in a custom personalization token](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/create-a-pipeline-processor-to-convert-form-data-in-a-custom-personalization-token.md): How to implement a new pipeline processor to transform the value of a check box list field and render it as a list of comma-separated values. ### The delivery process - [The delivery process](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-delivery-process.md): How to extend and refine the EXM delivery process to meet your requirements. - [The EXM pipelines](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-pipelines.md): Understanding how the EXM pipelines and processors work gives you an insight into the message generation and sending process. - [The EXM extensibility points](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-extensibility-points.md): You can extend the logic of EXM processing pipelines and message events with your own implementation. - [The default channel ID of new email campaign items](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-default-channel-id-of-new-email-campaign-items.md): EXM adds a channel ID to each new campaign item, which allows to track the campaign when users click links in emails. - [The interactions created in XDB by EXM](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-interactions-created-in-xdb-by-exm.md): When you send an email campaign a number of interaction are created in the xDB. - [Optimize deliverability and Inbox placement](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/optimize-deliverability-and-inbox-placement.md): How to optimize deliverability and Inbox placement in order to develop a good reputation with mailbox providers and establish your company as a legitimate sender. - [Sending email campaigns programmatically](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/sending-email-campaigns-programmatically.md): How to send regular and automated email campaigns programmatically from the Content Delivery (CD) role using the Email Experience Manager API. - [Define sending limits in the Content Editor](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/define-sending-limits-in-the-content-editor.md): How to control the number of email messages that can be sent to a contact in any given day, week, or month. - [Managing email campaign dispatch interruptions](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/managing-email-campaign-dispatch-interruptions.md): Overview of email campaign dispatch interruptions and how to resolve them. ## Management - [Management](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/management.md) ### General EXM settings - [General EXM settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/general-exm-settings.md) - [The global EXM settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-global-exm-settings.md): Define the global Email Experience Manager settings that are common to all the manager roots in a solution. - [Edit the EXM default settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/edit-the-exm-default-settings.md): Edit the EXM default settings in EXM or the Content Editor. - [EXM security roles](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/exm-security-roles.md): Marketers should be assigned the necessary access rights through one of the corresponding security roles. - [Configuring OAuth](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configuring-oauth.md): Learn how to configure CustomSMTP with OAuth. - [The manager root settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-manager-root-settings.md): Configure the EXM manager root settings for message generation, subscription control, implementation details, DSNs, and more. - [Create a new manager root](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/create-a-new-manager-root.md): How to create a new manager root if you need more than one manager root, for example, in a multisite environment. - [Using EXM in multisite environments](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/using-exm-in-multisite-environments.md): In multi-site environments, you must differentiate manager roots between sites. - [The general settings for an email campaign type](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-general-settings-for-an-email-campaign-type.md): Set up parameters for a particular email campaign type that applies to all the email campaigns of that type. - [Configuring the EXM user interface](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configuring-the-exm-user-interface.md): You can configure the infinite scrolling and the default sorting of columns in the EXM UI. ### Defining message settings - [Defining message settings](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/defining-message-settings.md) - [Configuring a message setting](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configuring-a-message-setting.md): Learn how to configure message settings on a specific message without affecting other messages of that type. - [Include a link to the online version of a message](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/include-a-link-to-the-online-version-of-a-message.md): How to add a link so that recipients can view a message in a browser. - [Enable the multilanguage message functionality](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/enable-the-multilanguage-message-functionality.md): Configure the EXM module to use the functionality that allows delivering messages in the recipients preferred language. - [Change the details for selecting a winner of a started A/B test message](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/change-the-details-for-selecting-a-winner-of-a-started-a-b-test-message.md): Change the automatic selection details for an A/B test message even after you have started the test. ### Reputation management - [Reputation management](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/reputation-management.md) - [Optimize deliverability and Inbox placement](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/optimize-deliverability-and-inbox-placement-890311.md): How to optimize deliverability and Inbox placement in order to develop a good reputation with mailbox providers and establish your company as a legitimate sender. - [Emails that bounce](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/emails-that-bounce.md): EXM applies a set of rules to email messages that are returned to the sender because they cannot be delivered. - [Use a Custom SMTP for email delivery](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/use-a-custom-smtp-for-email-delivery.md): Set up EXM to use a Custom SMTP provider for sending email messages. ### EXM Delivery Cloud - [EXM Delivery Cloud](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/exm-delivery-cloud.md): Using the EXM Delivery Cloud, you can ensure that email campaigns are not blocked but instead arrive quickly to the recipients' Inbox. - [The EXM Delivery Cloud compared to the custom SMTP](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-delivery-cloud-compared-to-the-custom-smtp.md): Overview of the differences between EXM Delivery Cloud and Custom SMTP. - [Use the EXM Delivery Cloud service](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/use-the-exm-delivery-cloud-service.md): Use the EXM Delivery Cloud service for email delivery. - [Adding or editing a domain](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/adding-or-editing-a-domain.md): Authorize the relevant domains for sending email campaigns. - [Managing the suppression list](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/managing-the-suppression-list.md): Add or remove an email address from the suppression list or export the list to a CSV file. - [Implementing a warm-up strategy for EXM Delivery Cloud accounts](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/implementing-a-warm-up-strategy-for-exm-delivery-cloud-accounts.md): Use IP warming to establish a positive sending reputation with ISPs. - [Specifying the EXM Delivery Cloud data center connection](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/specifying-the-exm-delivery-cloud-data-center-connection.md): You can configure EXM Delivery Cloud to connect to a specific data center. ## Performance - [Performance](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/performance.md): How to use the performance measurement tool, set up dedicated servers, and configure the dedicated email dispatch server. - [Testing EXM performance in emulation mode](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/testing-exm-performance-in-emulation-mode.md): Test campaign throughput by emulating a message transfer agent either for a single message or for the server-level dispatch. - [Test the connection between the EXM and the MTA](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/test-the-connection-between-the-exm-and-the-mta.md): How to verify the connection between EXM and the MTA. - [The EXM dispatch process and performance tuning](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/the-exm-dispatch-process-and-performance-tuning.md): Understand how the dispatch process works and how you can improve performance. - [Performance tuning and the EXM performance measurement tool](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/performance-tuning-and-the-exm-performance-measurement-tool.md): Use the EXM Performance Measurement Tool to gain an insight into the performance of an email campaign. - [Using dedicated email dispatch servers](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/using-dedicated-email-dispatch-servers.md): Decide on how many dedicated email dispatch servers you need to get the most out of the EXM module. - [Configure a dedicated email dispatch server on-prem](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/configure-a-dedicated-email-dispatch-server-on-prem.md): Use dedicated EXM servers to speed up the process of generating and sending messages. ## Troubleshooting Email Experience Manager - [Troubleshooting Email Experience Manager](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/troubleshooting-email-experience-manager.md) ## Optional - [Full publication as Markdown](https://doc.sitecore.com/xp/en/developers/exm/103/email-experience-manager/llms-full.txt): Every article in this publication in a single file. - [Version 10.4](https://doc.sitecore.com/xp/en/developers/exm/104/email-experience-manager/llms.txt): Current. - [Version 10.2](https://doc.sitecore.com/xp/en/developers/exm/102/email-experience-manager/llms.txt): Previous version. - [Version 10.1](https://doc.sitecore.com/xp/en/developers/exm/101/email-experience-manager/llms.txt): Previous version. - [Version 10.0](https://doc.sitecore.com/xp/en/developers/exm/100/email-experience-manager/llms.txt): Previous version. - [Version 9.3](https://doc.sitecore.com/xp/en/developers/exm/93/email-experience-manager/llms.txt): Previous version. - [Version 9.2](https://doc.sitecore.com/xp/en/developers/exm/92/email-experience-manager/llms.txt): Previous version. - [Version 9.1](https://doc.sitecore.com/xp/en/developers/exm/91/email-experience-manager/llms.txt): Previous version.