<?xml version="1.0" encoding="utf-8"?> <!-- Purpose: This include file configures Email delivery service API. --> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <exm> <eds> <!-- HTTP CLIENT FACTORY Creates a http client to request web resources. --> <httpClientFactory type="Sitecore.EDS.Providers.SparkPost.Net.Http.HttpClientFactory, Sitecore.EDS.Providers.SparkPost" singleInstance="true" /> <!-- PROXY SETTINGS Proxy settings for SMTP and POP3 clients --> <proxySettings type="Sitecore.EDS.Core.Net.ProxySettings, Sitecore.EDS.Core" singleInstance="true"> <enabled>false</enabled> </proxySettings> <!-- SMTP SETTINGS OBJECT Creates SMTP settings class. --> <smtpSettings type="Sitecore.EDS.Providers.SparkPost.Smtp.SmtpSettings, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <server>sitecore.smtp.e.sparkpost.com</server> <port>587</port> <userName>sitecore</userName> <startTls>true</startTls> <proxySettings ref="exm/eds/proxySettings" /> </smtpSettings> <!-- RETRY OPERATION HELPER A helper class that allows a specified operation to be retried a configurable number of times. A linear delay is added between each retry: delay*retryAttempt --> <retry type="Sitecore.ExM.Framework.Helpers.Retry, Sitecore.ExM.Framework" singleInstance="true"> <param desc="delay">1000</param> <param desc="retryCount">3</param> </retry> <!-- EDS SERVICE Obtains the SparkPost SMTP and API credentials. --> <edsService type="Sitecore.EDS.Providers.SparkPost.Services.EdsService, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param ref="exm/eds/httpClientFactory" /> <param desc="apiUrl">https://sparkpost.cloud.sitecore.net</param> <param ref="exm/eds/retry" /> <param ref="exmLogger" /> <retryableHttpErrorCodes hint="list:AddRetryableHttpStatusCode"> <retryableHttpErrorCode>401</retryableHttpErrorCode> <retryableHttpErrorCode>403</retryableHttpErrorCode> <retryableHttpErrorCode>500</retryableHttpErrorCode> <retryableHttpErrorCode>502</retryableHttpErrorCode> <retryableHttpErrorCode>503</retryableHttpErrorCode> </retryableHttpErrorCodes> </edsService> <!-- SparkPost CONFIGURATION Creates a configuration store. --> <configurationStore type="Sitecore.EDS.Providers.SparkPost.Configuration.ConfigurationStore, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param ref="exm/eds/smtpSettings" /> <param ref="exm/eds/edsService" /> <apiUrl>https://sitecore.api.e.sparkpost.com/</apiUrl> <subscriptionApiUrl>https://apps.sitecore.net</subscriptionApiUrl> </configurationStore> <!-- CONNECTION POOL SETTINGS Defines the connection pool settings. --> <connectionPoolSettings type="Sitecore.EDS.Core.Net.Smtp.ConnectionPoolSettings, Sitecore.EDS.Core" singleInstance="true"> <maxPoolSize>10</maxPoolSize> <delayBetweenConnectionRetries>00:00:10.000</delayBetweenConnectionRetries> <maxConnectionWaitTime>00:00:30.000</maxConnectionWaitTime> <maxConnectionIdleTime>00:10:00.000</maxConnectionIdleTime> <maxConnectionRetries>3</maxConnectionRetries> </connectionPoolSettings> <!-- CONNECTION POOL MANAGER Creates a manager for connection pooling. --> <connectionPoolManager type="Sitecore.EDS.Providers.SparkPost.Dispatch.ConnectionPoolManager, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param ref="exm/eds/configurationStore" /> <param ref="exm/eds/connectionPoolSettings" /> </connectionPoolManager> <!-- SUBSCRIPTION CLIENT Creates a client for subscriontion information requests --> <subscriptionClient type="Sitecore.EDS.Providers.SparkPost.Subscription.SubscriptionClient, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param ref="exm/eds/httpClientFactory" /> <param ref="exm/eds/configurationStore" /> <param ref="exmLogger" /> <param ref="exm/eds/retry" /> <param desc="credentialsType">nexus</param> <param desc="sparkpostApplicationId">b5fc350d-cd68-406e-b7a4-2dcf5adfcc4d</param> <retryableHttpErrorCodes hint="list:AddRetryableHttpStatusCode"> <retryableHttpErrorCode>429</retryableHttpErrorCode> <retryableHttpErrorCode>500</retryableHttpErrorCode> <retryableHttpErrorCode>503</retryableHttpErrorCode> </retryableHttpErrorCodes> </subscriptionClient> <!-- SPARKPOST API CLIENT Creates a client for SparkPost Api requests. --> <apiClient type="Sitecore.EDS.Providers.SparkPost.Client.SparkPostApiClient, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param ref="exm/eds/httpClientFactory" /> <param ref="exm/eds/configurationStore" /> <param ref="exmLogger" /> <param ref="exm/eds/retry" /> <retryableHttpErrorCodes hint="list:AddRetryableHttpStatusCode"> <retryableHttpErrorCode>429</retryableHttpErrorCode> <retryableHttpErrorCode>500</retryableHttpErrorCode> <retryableHttpErrorCode>503</retryableHttpErrorCode> </retryableHttpErrorCodes> <bounceEventNames hint="list:AddBounceEventName"> <bounceEventName>bounce</bounceEventName> <bounceEventName>policy_rejection</bounceEventName> <bounceEventName>generation_failure</bounceEventName> <bounceEventName>generation_rejection</bounceEventName> </bounceEventNames> <spamComplaintEventNames hint="list:AddSpamComplaintEventName"> <spamComplaintEventName>spam_complaint</spamComplaintEventName> </spamComplaintEventNames> <bounceEventClasses hint="list:AddBounceEventClass"> <!--<bounceEventClass>1</bounceEventClass>--> </bounceEventClasses> <spamComplaintEventClasses hint="list:AddSpamComplaintEventClass"> <!--<spamComplaintEventClass>50</spamComplaintEventClass>--> </spamComplaintEventClasses> </apiClient> <!-- Connection String Configuration Provides the connection string for the data storage. --> <connectionStringConfiguration type="Sitecore.EDS.Providers.SparkPost.Data.ConnectionStringConfiguration, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param desc="connectionStringName">exm.master</param> </connectionStringConfiguration> <!-- Data context factory Creates a data context for LINQ to SQL --> <dataContextFactory type="Sitecore.EDS.Providers.SparkPost.Data.DataContextFactory, Sitecore.EDS.Providers.SparkPost" singleInstance="true" /> <!-- SUPPRESSIONS DATA PROVIDER Provides access to the suppression data storage. --> <suppressionDataProvider type="Sitecore.EDS.Providers.SparkPost.Data.SuppressionDataProvider, Sitecore.EDS.Providers.SparkPost" singleInstance="true"> <param ref="exm/eds/connectionStringConfiguration" /> <param ref="exm/eds/dataContextFactory" /> </suppressionDataProvider> <!-- EMAIL DISPATCH PROVIDER Provides email dispatching. --> <dispatchProvider defaultProvider="default"> <providers> <clear /> <add name="default" type="Sitecore.EDS.Providers.SparkPost.Dispatch.DispatchProvider, Sitecore.EDS.Providers.SparkPost"> <param ref="exm/eds/connectionPoolManager" /> <param ref="exm/eds/environmentIdentifier" /> <param ref="exm/eds/configurationStore" /> <param desc="returnPath">bounce@spe.sitecoremail.com</param> </add> </providers> </dispatchProvider> <!-- SENDER PROVIDER Provides approved senders list. --> <senderProvider defaultProvider="default"> <providers> <clear /> <add name="default" type="Sitecore.EDS.Providers.SparkPost.Senders.SenderProvider, Sitecore.EDS.Providers.SparkPost"> <param ref="exm/eds/apiClient" /> </add> </providers> </senderProvider> <!-- BOUNCED MESSAGES PROVIDER Handles the reported bounced messages. --> <bounceProvider defaultProvider="default"> <providers> <clear /> <add name="default" type="Sitecore.EDS.Core.Reporting.DeliveryReportProvider`1[[Sitecore.EDS.Core.Reporting.Bounce, Sitecore.EDS.Core]], Sitecore.EDS.Core" /> </providers> </bounceProvider> <!-- SPAM COMPLAINTS PROVIDER Handles the reported spam complaints. --> <complaintProvider defaultProvider="default"> <providers> <clear /> <add name="default" type="Sitecore.EDS.Core.Reporting.DeliveryReportProvider`1[[Sitecore.EDS.Core.Reporting.Complaint, Sitecore.EDS.Core]], Sitecore.EDS.Core" /> </providers> </complaintProvider> <!-- SUPPRESSION PROVIDER Handles the suppressed emails. --> <suppressionProvider defaultProvider="default"> <providers> <clear /> <add name="default" type="Sitecore.EDS.Providers.SparkPost.Suppressions.SuppressionProvider, Sitecore.EDS.Providers.SparkPost"> <param ref="exm/eds/suppressionDataProvider" /> </add> </providers> </suppressionProvider> </eds> </exm> </sitecore> </configuration>