XMS Mail Server Documentation


Table of Contents

I. Installation and Configuration
1. Installing XMS Mail Server
Installing XMS Messaging Server on Windows
Optimized TCP/IP Registry Settings
Installing XMS Mail Server on UNIX
2. Configuring XMS Mail Server
The config.xml file
Documentation for config.xml
The log4j.xml file
Setting the log level
Log4j appenders
The xms-wrapper.conf file
Memory Settings
Java Virtual Machine
3. Management and Monitoring
Enabling Web Based Monitoring
Enabling File Based Monitoring
II. XMS Mail Server Examples
4. XMS Mail Server Examples
Template Job Service Examples
Example Database Structure
Example Template
Template Job Configuration
Template Engines
Setting up DomainKeys on XMS
Signing Email with DomainKeys on XMS Email Server
Setting up XMS Mail Server as an Incoming Gateway
Ensuring that your mail server is not setup as an Open Relay
Rejecting Recipients
Redirecting mail to a local delivery SMTP server
Setting Up the SpamAssassin anti-spam filter on XMS
Installing Spam Assassin
Configuring the SpamAssassin Filter in XMS
Load Balancing SpamAssassin
What does the XMS Spam Assassin Filter Do?
Virus Scanning Email with Clam AntiVirus
Installing ClamAV
Configuring the XMS ClamAV filter
Load Balancing ClamAV AntiVirus Filter
What does the ClamAV Virus Scanning Filter do?
Configuring a DataSource
Finding a JDBC Driver for your Database Server
JDBC Driver Class Names
JDBC URL's
Installing the JDBC Driver
Adding a DataSource to XMS in config.xml
Working with the StringList Service
Creating a list in the config.xml file
Creating a list in a separate file
Using a Database as a List
Handling Bounce Emails on XMS
Configuring the Bounce Filters, and Handlers
III. Configuration Reference
I. actions
Database Query Action - Action that executes a database query
Log Action - Action that stores information in a log file
Null Action - Action that does absolutely nothing
Test Action - Test action that dumps the context to the console
II. authenticators
Configuration File Authenticator - An authenticator for the AuthenticationService that allows you to speicfy users from the config.xml file
Unix Password File Authenticator - Unix Password File Authenticator
III. engines
Freemarker Template Engine - Provides an interface to the Freemarker template engine
Token Template Engine - Provides token parsing for the template engine
IV. filters
Bounce Filter - The bounce filter filters bounces
Header Filter - Example filter that adds a Yo header
RegEx Line Filter - Regular Expression filter that matches expressions on a line, and then applies an action to them.
Simple Forwarder - Forwards mail for one address to another
Upper Case Filter - Converts message text to upper case
Blacklist Filter - Blocks IP addresses listed in blacklists
Simple Connection Filter - Blocks or allows connections based on the connecting IP address
Verp Bounce Filter - Provides VERP services and bounce scanning for incoming and outgoing mail
Attribute Map Filter - Filter for mapping headers into attributes
ClamAV Filter - Scans emails for viruses using clamd
From List Blocker - Blocks an email if its from address is found in the given list
From List Filter - Applies an action to an email based on if the source address is found in a list or not.
Habeas Filter - Filter for adding Habeas accredidation headers
SpamAssassin Filter - Sends email to a spamd server for checking
DKIM Signature Filter - Signs emails using DKIM, and adds a DKIM-Signature header to emails
DomainKeys Verification Filter - Verifies the signatures of a email signed with DomainKeys, currently in development.
DomainKeys Signature Filter - Signs emails using Yahoo DomainKeys spec, and adds a DomainKeys-Signature header to emails
DomainKeys Verification Filter - Verifies the signatures of a email signed with DomainKeys, currently in development.
Forwarding Filter - Redirect email
Relay Filter with StringList attributes - Allows email to come through for a specified list of local domains, or by connection ip. Supports StringList types for the list of domains, accept and reject addresses.
Local Delivery Filter - Changes the message target for recipient domains found in the localdomains attribute.
Multiplexer Map Filter - Maps domains to a multiplexer target.
Recipient List Filter - Applies an action to an email based on if a recipient is found in a list or not.
Recipient Reject Filter - Rejects mail to a given recipient
Simple Relaying Filter - Allows email to come through for a specified list of local domains, or by connection ip
Seed Filter - SeedFilter sends messages to defined pop addresses at specified intervals within a distribution list. Deliverabiliy issues can be identified and addressed using the data returned by the deliverability service vendor based on the results of the delivery attempts to seed accounts.
V. keystores
Key Store - Key Stores hold security keys (public and private keys)
Key Store - Key Stores hold security keys (public and private keys)
VI. lists
Configuration File String List - Allows you to define StringList data from within the configuration (config.xml) file. Note that the list can be modified at server runtime (if readonly=false), but any changes are lost when the server is restarted.
Database String List - A String List
File String List - A String List
File String List - A String List
VII. maps
Database String Map - A string map maps string keys to string values
Property File String Map - A String Map that stores its values in a properties file
VIII. policys
Default delivery policy manager - Exponentially increases deferral time within a minimum and maximum window
Fire and Forget Delivery Policy - Delivery policy that does not generate DSN's and only retries a specified number of times
IX. printers
Printer Config -
X. providers
Database provider - A Database provider for the template service
Debug Provider - A debug provider for the template service
File Provider - A file provider for the template service
Loop Provider - A provider that stores the results of it's contained providers in a sublist
Merge Provider - A provider that merges the results of contained providers.
Push Provider - Provides data pushed via HTTP
Simple Provider - A simple provider for the template service
Status Provider - A provider that provides the last N values for specified variables
Template Provider - Provider that processes templates and assigns them to variables
XML Provider - Provides XML documents from a specified URL
XI. services
Configuration Genius - This service provides an interface for automated initial configuration.
Configuration Service - The configuration service hosts the online configuration documentation.
Datasource Service - XMS Server implementation of a DataSourceService. Manages datasource connections
String Map Service - XMS String Map Service implementation
String List Service - XMS implementation of ListService
XMS DSN Generator Service - XMS DSN Generator Service
Active Message Generator Service - Active Message Generator Service Generates Active Messages?
Console Target Service - Console Target Service
Null Target Service - Null Target Service
Printer Service -
Management Service - The management service provides web based management of server resources
XMS SOAP Service - Provides access to service APIs via SOAP
XMS Telnet debug service - Runs a debug server on port 8023 that you can telnet to
Monitoring Service - Provides resource monitoring services
Domain Monitoring Service - Enables extended monitoring capabilities at a per-domain resolution
Domain Name Service - A service that exposes methods to query DNS Servers
XMS Connection Authority Service - Connection authority provides controls and limits on how the server connects to other servers.
Authentication Service - Provides authenticators that authenticate usernames and passwords
Key Store Service - Provides access to key stores which hold public and private keys used for encryption
IQ Spool Service - Stores messages to disk.
XMS Template Job Service - Template job service allows you to send personalized email campaigns
Thread Pool Service - Threading and Scheduling Services for XMS Server
Deferral Multiplexer - Multiplexer for offsetting deferrals to a separate target
Load Balancer - Load Balancer for balancing outgoing IPs
Multiplexer - Multiplexer for switching between targets
SMTP Client Service - SMTP Client service takes messages and sends them to other smtp servers
SMTP Service - SMTP Server Service
SQL Delivery Service - Message transport that delivers to an SQL database.
Update Service - Provides automatic updates for XMS

List of Tables

1. Attributes for action tag (for xms.action.DBAction)
2. Attributes for sql tag (for xms.action.DBAction)
3. Attributes for param tag (for xms.action.DBAction)
4. Attributes for action tag (for xms.action.LogAction)
5. Attributes for action tag (for xms.action.NullAction)
6. Attributes for action tag (for xms.action.TestAction)
7. Attributes for authenticator tag (for xms.security.ConfigurationFileAuthenticator)
8. Attributes for user tag (for xms.security.ConfigurationFileAuthenticator)
9. Attributes for email tag (for xms.security.ConfigurationFileAuthenticator)
10. Attributes for authenticator tag (for xms.security.authentication.UnixPasswordAuthenticator)
11. Attributes for engine tag (for xms.template.engine.FreemarkerEngine)
12. Attributes for setting tag (for xms.template.engine.FreemarkerEngine)
13. Attributes for engine tag (for xms.template.engine.TokenEngine)
14. Attributes for filter tag (for xms.bounce.BounceFilter)
15. Attributes for handler tag (for xms.bounce.BounceFilter)
16. Attributes for filter tag (for xms.examples.HeaderFilter)
17. Attributes for filter tag (for xms.examples.RegExFilter)
18. Attributes for filter tag (for xms.examples.SimpleForwarder)
19. Attributes for filter tag (for xms.examples.UpperCaseFilter)
20. Attributes for filter tag (for xms.filter.BlacklistFilter)
21. Attributes for filter tag (for xms.filter.SimpleConnectionFilter)
22. Attributes for filter tag (for xms.filter.bounce.VerpBounceFilter)
23. Attributes for action tag (for xms.filter.bounce.VerpBounceFilter)
24. Attributes for filter tag (for xms.filter.data.AttributeMapFilter)
25. Attributes for filter tag (for xms.filter.data.ClamAVFilter)
26. Attributes for filter tag (for xms.filter.data.FromListBlocker)
27. Attributes for filter tag (for xms.filter.data.FromListFilter)
28. Attributes for filter tag (for xms.filter.data.HabeasFilter)
29. Attributes for filter tag (for xms.filter.data.SpamAssassinFilter)
30. Attributes for filter tag (for xms.filter.dkim.DKIMSignatureFilter)
31. Attributes for filter tag (for xms.filter.dkim.DKIMVerificationFilter)
32. Attributes for filter tag (for xms.filter.domainkeys.DomainKeysSignatureFilter)
33. Attributes for filter tag (for xms.filter.domainkeys.DomainKeysVerificationFilter)
34. Attributes for filter tag (for xms.filter.recipient.ForwardingFilter)
35. Attributes for filter tag (for xms.filter.recipient.ListRelayFilter)
36. Attributes for filter tag (for xms.filter.recipient.LocalDeliveryFilter)
37. Attributes for filter tag (for xms.filter.recipient.MultiplexerMapFilter)
38. Attributes for filter tag (for xms.filter.recipient.RecipientListFilter)
39. Attributes for filter tag (for xms.filter.recipient.SimpleRecipientRejectFilter)
40. Attributes for filter tag (for xms.filter.recipient.SimpleRelayFilter)
41. Attributes for filter tag (for xms.filter.seed.SeedFilter)
42. Attributes for keystore tag (for xms.security.JavaKeyStore)
43. Attributes for keystore tag (for xms.security.PKCS12KeyStore)
44. Attributes for list tag (for xms.dataservices.list.ConfigFileStringList)
45. Attributes for item tag (for xms.dataservices.list.ConfigFileStringList)
46. Attributes for list tag (for xms.dataservices.list.DBStringList)
47. Attributes for list tag (for xms.dataservices.list.FileStringList)
48. Attributes for list tag (for xms.dataservices.list.PropertyFileStringList)
49. Attributes for map tag (for xms.dataservices.map.DBStringMap)
50. Attributes for map tag (for xms.dataservices.map.PropertyFileStringMap)
51. Attributes for policy tag (for xms.policy.DefaultDeliveryPolicy)
52. Attributes for policy tag (for xms.policy.FireandForgetDeliveryPolicy)
53. Attributes for printer tag (for xms.examples.beanconfig.NumberPrinter)
54. Attributes for provider tag (for xms.template.provider.DBProvider)
55. Attributes for sql tag (for xms.template.provider.DBProvider)
56. Attributes for param tag (for xms.template.provider.DBProvider)
57. Attributes for action tag (for xms.template.provider.DBProvider)
58. Attributes for provider tag (for xms.template.provider.DebugProvider)
59. Attributes for provider tag (for xms.template.provider.FileProvider)
60. Attributes for file tag (for xms.template.provider.FileProvider)
61. Attributes for provider tag (for xms.template.provider.LoopProvider)
62. Attributes for provider tag (for xms.template.provider.LoopProvider)
63. Attributes for provider tag (for xms.template.provider.MergeProvider)
64. Attributes for provider tag (for xms.template.provider.MergeProvider)
65. Attributes for action tag (for xms.template.provider.MergeProvider)
66. Attributes for exclude tag (for xms.template.provider.MergeProvider)
67. Attributes for provider tag (for xms.template.provider.MergeProvider)
68. Attributes for provider tag (for xms.template.provider.PushProvider)
69. Attributes for provider tag (for xms.template.provider.SimpleProvider)
70. Attributes for var tag (for xms.template.provider.SimpleProvider)
71. Attributes for sublist tag (for xms.template.provider.SimpleProvider)
72. Attributes for var tag (for xms.template.provider.SimpleProvider)
73. Attributes for provider tag (for xms.template.provider.StatusProvider)
74. Attributes for provider tag (for xms.template.provider.TemplateProvider)
75. Attributes for engine tag (for xms.template.provider.TemplateProvider)
76. Attributes for provider tag (for xms.template.provider.XMLProvider)
77. Attributes for service tag (for xms.configuration.ConfigurationGenius)
78. Attributes for var tag (for xms.configuration.ConfigurationGenius)
79. Attributes for service tag (for xms.configuration.ConfigurationService)
80. Attributes for service tag (for xms.dataservices.XMSDataSourceService)
81. Attributes for datasource tag (for xms.dataservices.XMSDataSourceService)
82. Attributes for sql tag (for xms.dataservices.XMSDataSourceService)
83. Attributes for datasourceset tag (for xms.dataservices.XMSDataSourceService)
84. Attributes for provider tag (for xms.dataservices.XMSDataSourceService)
85. Attributes for datasource tag (for xms.dataservices.XMSDataSourceService)
86. Attributes for sql tag (for xms.dataservices.XMSDataSourceService)
87. Attributes for service tag (for xms.dataservices.XMSStringMapService)
88. Attributes for map tag (for xms.dataservices.XMSStringMapService)
89. Attributes for service tag (for xms.dataservices.list.XMSStringListService)
90. Attributes for list tag (for xms.dataservices.list.XMSStringListService)
91. Attributes for service tag (for xms.dsn.XMSDSNGeneratorService)
92. Attributes for service tag (for xms.examples.ActiveMessageGeneratorService)
93. Attributes for message tag (for xms.examples.ActiveMessageGeneratorService)
94. Attributes for service tag (for xms.examples.ConsoleTargetService)
95. Attributes for service tag (for xms.examples.NullTargetService)
96. Attributes for service tag (for xms.examples.beanconfig.PrinterService)
97. Attributes for printer tag (for xms.examples.beanconfig.PrinterService)
98. Attributes for service tag (for xms.management.XMSManagementService)
99. Attributes for service tag (for xms.management.XMSSOAPService)
100. Attributes for service tag (for xms.management.debug.XMSDebugService)
101. Attributes for service tag (for xms.monitoring.XMSMonitoringService)
102. Attributes for monitorfile tag (for xms.monitoring.XMSMonitoringService)
103. Attributes for service tag (for xms.monitoring.domain.XMSDomainMonitoringService)
104. Attributes for service tag (for xms.net.dns.XMSDNSService)
105. Attributes for service tag (for xms.policy.XMSConnectionAuthority)
106. Attributes for host tag (for xms.policy.XMSConnectionAuthority)
107. Attributes for service tag (for xms.security.XMSAuthenticationService)
108. Attributes for authenticator tag (for xms.security.XMSAuthenticationService)
109. Attributes for service tag (for xms.security.XMSKeyStoreService)
110. Attributes for keystore tag (for xms.security.XMSKeyStoreService)
111. Attributes for service tag (for xms.spool.IQSpoolService)
112. Attributes for index tag (for xms.spool.IQSpoolService)
113. Attributes for service tag (for xms.template.XMSTemplateJobService)
114. Attributes for job tag (for xms.template.XMSTemplateJobService)
115. Attributes for filter tag (for xms.template.XMSTemplateJobService)
116. Attributes for action tag (for xms.template.XMSTemplateJobService)
117. Attributes for engine tag (for xms.template.XMSTemplateJobService)
118. Attributes for provider tag (for xms.template.XMSTemplateJobService)
119. Attributes for service tag (for xms.thread.XMSThreadPoolService)
120. Attributes for service tag (for xms.transport.DeferralMultiplexer)
121. Attributes for service tag (for xms.transport.LoadBalancer)
122. Attributes for service tag (for xms.transport.Multiplexer)
123. Attributes for target tag (for xms.transport.Multiplexer)
124. Attributes for service tag (for xms.transport.smtp.SMTPClientService)
125. Attributes for action tag (for xms.transport.smtp.SMTPClientService)
126. Attributes for policy tag (for xms.transport.smtp.SMTPClientService)
127. Attributes for service tag (for xms.transport.smtp.SMTPService)
128. Attributes for filter tag (for xms.transport.smtp.SMTPService)
129. Attributes for service tag (for xms.transport.sql.SQLDeliveryService)
130. Attributes for sql tag (for xms.transport.sql.SQLDeliveryService)
131. Attributes for param tag (for xms.transport.sql.SQLDeliveryService)
132. Attributes for policy tag (for xms.transport.sql.SQLDeliveryService)
133. Attributes for service tag (for xms.updates.XMSUpdateService)

List of Examples

2.1. Setup the built in web server to listen on all network interfaces
2.2. Example config.xml service tags for accessing the online documentation:
3. Example configuration for Database Query Action
4. Example configuration for Log Action
5. Example configuration for Null Action
6. Example configuration for Test Action
7. Example configuration for Configuration File Authenticator
8. Example configuration for Unix Password File Authenticator
9. Example configuration for Freemarker Template Engine
10. Example configuration for Token Template Engine
11. Example configuration for Bounce Filter
12. Example configuration for Header Filter
13. Example configuration for RegEx Line Filter
14. Example configuration for Simple Forwarder
15. Example configuration for Upper Case Filter
16. Example configuration for Blacklist Filter
17. Example configuration for Simple Connection Filter
18. Example configuration for Verp Bounce Filter
19. Example configuration for Attribute Map Filter
20. Example configuration for ClamAV Filter
21. Example configuration for From List Blocker
22. Example configuration for From List Filter
23. Example configuration for Habeas Filter
24. Example configuration for SpamAssassin Filter
25. Example configuration for DKIM Signature Filter
26. Example configuration for DomainKeys Verification Filter
27. Example configuration for DomainKeys Signature Filter
28. Example configuration for DomainKeys Verification Filter
29. Example configuration for Forwarding Filter
30. Example configuration for Relay Filter with StringList attributes
31. Example configuration for Local Delivery Filter
32. Example configuration for Multiplexer Map Filter
33. Example configuration for Recipient List Filter
34. Example configuration for Recipient Reject Filter
35. Example configuration for Simple Relaying Filter
36. Example configuration for Seed Filter
37. Example configuration for Key Store
38. Example configuration for Key Store
39. Example configuration for Configuration File String List
40. Example configuration for Database String List
41. Example configuration for File String List
42. Example configuration for File String List
43. Example configuration for Database String Map
44. Example configuration for Property File String Map
45. Example configuration for Default delivery policy manager
46. Example configuration for Fire and Forget Delivery Policy
47. Example configuration for Printer Config
48. Example configuration for Database provider
49. Example configuration for Debug Provider
50. Example configuration for File Provider
51. Example configuration for Loop Provider
52. Example configuration for Merge Provider
53. Example configuration for Push Provider
54. Example configuration for Simple Provider
55. Example configuration for Status Provider
56. Example configuration for Template Provider
57. Example configuration for XML Provider
58. Example configuration for Configuration Genius
59. Example configuration for Configuration Service
60. Example configuration for Datasource Service
61. Example configuration for String Map Service
62. Example configuration for String List Service
63. Example configuration for XMS DSN Generator Service
64. Example configuration for Active Message Generator Service
65. Example configuration for Console Target Service
66. Example configuration for Null Target Service
67. Example configuration for Printer Service
68. Example configuration for Management Service
69. Example configuration for XMS SOAP Service
70. Example configuration for XMS Telnet debug service
71. Example configuration for Monitoring Service
72. Example configuration for Domain Monitoring Service
73. Example configuration for Domain Name Service
74. Example configuration for XMS Connection Authority Service
75. Example configuration for Authentication Service
76. Example configuration for Key Store Service
77. Example configuration for IQ Spool Service
78. Example configuration for XMS Template Job Service
79. Example configuration for Thread Pool Service
80. Example configuration for Deferral Multiplexer
81. Example configuration for Load Balancer
82. Example configuration for Multiplexer
83. Example configuration for SMTP Client Service
84. Example configuration for SMTP Service
85. Example configuration for SQL Delivery Service
86. Example configuration for Update Service