Welcome to DkimX

DkimX-Logo
Welcome to DkimX 1.31

To create a simple, working configuration after installation, please follow the steps described in the topic Quick Configuration to Enable a Local Domain for DKIM Signing.

If you want to see something be implemented in a future release of this product or if you want to report a bug or have any other technical question related to this product, please send e-mail to support@netal.com or use the web-based support forum.

http://www.netal.com
Franz Krainer
franzk@netal.com


Release Notes

DkimX 1.31 Release Notes

Welcome to DkimX 1.31. Please refer to these release notes to obtain the most up-to-date information about installation, documentation, support, and other known issues.

  • Release History
  • Installing DkimX 1.31
  • Upgrading from DkimX 1x
  • Product Documentation
  • Evaluation License
  • Providing Feedback
  • Technical Support

Release History

v1.31 -/- 2017-04-05:

The following problems have been fixed in DkimX 1.31:

  • Depending on the value of the property AddressBookEnabled of an Accepted Domain of the MS Exchange configuration, an Accepted Domain may not be correctly detected as a local domain.
  • The Disabled state of the signer object is not effective, i.e. the signer is always active.

v1.30 -/- 2016-08-03:

DkimX 1.30 contains the following new features:

  • A new setting on the signer object (Set-DkimSigner cmdlet parameter: MaxHeaderSize, Signer property sheet: Restrictions->Maximum header size) allows to specify the maximum size of the SMTP header of messages. If the size of the SMTP header of a message exceeds this value, the message will not be processed by the signer.
  • The private key of a domain key object can be exported to file (PKCS#8 or XKMS 2.0 format) by the new cmdlet Export-DkimDomainKey in the Shell or the new Export Private Key to File Wizard in the Console.
  • A private key can be imported from file (PKCS#8 or XKMS 2.0 format) into a domain key object by the new cmdlet Import-DkimDomainKey in the Shell or the new Import Private Key from File Wizard in the Console.

v1.20 -/- 2014-09-19:

DkimX 1.20 contains the following new features:

  • A new setting on the signer object (Set-DkimSigner cmdlet parameter: TreatNullEnvelopeSenderAddressAsLocal, Signer property sheet: General->Treat the NULL envelope sender address as a local one) allows to specify that messages having the NULL envelope sender address (<>) should be treated as having a local envelope sender address. This setting must be enabled if the processing of automatic response messages, e.g. out-of-office messages, is desired.
  • DkimX Console: sorting the list of domain key objects by column Key Size or sorting the list of signer rule objects by column Priority is now performed in numeric order.

v1.11 -/- 2014-04-11:

The following problem has been fixed in DkimX 1.11:

  • A legitimate domain name cannot be configured as a custom local domain if the domain name contains one or more single character labels, e.g. a.example.org

v1.10 -/- 2011-08-09:

The following problem has been fixed in DkimX 1.10:

  • When the sender address of a message is examined to be a local or a external address, the Accepted Domains of MS Exchange are always included in the list of local domains, even if the corresponding configuration setting (Console: Include Accepted Domains from MS Exchange / Shell: IncludeMxsAcceptedDomainsInLocalDomains) is disabled.

v1.0 -/- 2011-05-09:

Initial version.

Installing DkimX 1.31

Prerequisites for the DkimX feature:

  • Windows Server 2008 or Windows Server 2008 R2
  • MS Exchange Server 2007 with SP2 or later, or MS Exchange Server 2010
  • The Hub/Edge Transport Server role must be installed on the MS Exchange Server
Note During installation of DkimX, the service Microsoft Exchange Transport will be restarted.

Other Installation Considerations

Uninstalling the Product

To uninstall the product, open the Add/Remove Programs applet in the Control Panel, select DkimX 1.31 and click the Remove button.

Note During uninstallation of DkimX, the service Microsoft Exchange Transport will be restarted.

Upgrading from DkimX 1.x

Upgrading from a previous DkimX 1.x version is supported. All configuration settings will be preserved.

Product Documentation

The documentation for the product is available by accessing the Product Documentation item in the program group where the product is installed.

Evaluation License

DkimX 1.31 ships with an evaluation license, which will expire 30 days after installation.

Providing Feedback

A web-based support forum is available to help you interact with us and other users of this product.

Technical Support

If you have a technical question about DkimX, use this online documentation or consult Help by clicking the Help button during a procedure. If you still have a question, post it to the web-based support forum or send your technical questions to support@netal.com.

Copyright Information

© 2011-2017 Franz Krainer

These materials are provided "as-is", for informational purposes only.

Neither Franz Krainer nor his suppliers makes any warranty, express or implied with respect to the content of these materials or the accuracy of any information contained herein, including, without limitation, the implied warranties of merchantability or fitness for a particular purpose. Because some states/jurisdictions do not allow exclusions of implied warranties, the above limitation may not apply to you.

Neither Franz Krainer nor his suppliers shall have any liability for any damages whatsoever including consequential, incidental, direct, indirect, special, and lost profits. Because some states/jurisdictions do not allow exclusions of implied warranties, the above limitation may not apply to you.

2017-04-05


Quick Configuration

Quick Configuration to Enable a Local Domain for DKIM Signing

To enable a local domain for DKIM signing after installation of DkimX, perform the following steps:

  1. Open the DkimX Management Console.
  2. Navigate to the Signer node and select on the Action menu the item Enable a Local Domain for DKIM Signing.
  3. The first page of the Enable a Local Domain for DKIM Signing Wizard is displayed. Click Next to move to the Domain wizard page.
  4. On the Domain wizard page, select the local domain you want to enable for DKIM signing, then click Next.
  5. On the Selector wizard page, specify the selector to use for the domain key, then click Next.
  6. On the RSA Key Size wizard page, select the size of the RSA key to be generated, then click Next.
  7. On the Policy wizard page, select the existing policy Default, then click Next.
  8. On the Rule wizard page, accept the offered rule name or specify your own, then click Next.
  9. On the Enable wizard page, review the configuration, then click Enable.
  10. On the Completion wizard page, click DNS TXT Record....
  11. On the DNS TXT Record dialog page, click Generate.
  12. Make a copy of the displayed information of the generated DNS TXT record, then click Close.
  13. Click Finish to close the wizard.
  14. Right-click on the computer object in the scope pane and click Apply Changes in the displayed context menu.
  15. Publish the DNS TXT record in the DNS zone for the domain to allow DKIM-verifiers to look up information required to verify messages sent from this domain.
  16. In the DkimX Management Console, right-click the rule which was created by the wizard and click Enable in the displayed context menu.
  17. Right-click on the computer object in the scope pane and click Apply Changes in the displayed context menu.

Note We recommend that you test your configuration after you enable a domain for DKIM signing.

Note Though optional, we strongly recommend that you configure one or more administrative contacts, which will be notified by e-mail of critical errors and license management events.


Setup

Welcome to the Setup topics. This section provides general information about installation requirements, procedures, and options. If you are having difficulty with your installation, review this information to be sure your computer is configured correctly and meets all the system requirements.

This section contains:

  • System Requirements: Required and recommended software.
  • Installation: The installation process on your computer.
  • Uninstallation: How to remove DkimX from the system.


System Requirements

Please be sure that the following software is installed on the computer prior to the installation of DkimX:

Prerequisites for the DkimX feature:

  • Windows Server 2008 or Windows Server 2008 R2
  • MS Exchange Server 2007 with SP2 or later, or MS Exchange Server 2010
  • The Hub/Edge Transport Server role must be installed on the MS Exchange Server


Installation

To install DkimX
  1. Double-click the installation package file DkimX131.msi.
  2. On the Welcome page of the Setup Wizard, click Next.
  3. Read the license agreement on the End-User License Agreement page. Only if you accept all the terms of the license agreement, check I accept the terms in the License Agreement and click Next.
  4. On the Custom Setup page, select the product features to install and choose the folder into which to install the software and click Next.
  5. On the Ready to install DkimX 1.31 page, click Next to start the installation process.
  6. On the Setup Complete page, which is displayed after successful installation, click Finish.

Note You must be logged in as an administrator of the computer to successfully install the product.

Note During installation of DkimX, the service Microsoft Exchange Transport will be restarted.


Uninstallation

To uninstall DkimX
  1. From the Start menu, choose Settings and then Control Panel.
  2. In Control Panel, double-click Add/Remove Programs.
  3. Select DkimX 1.31.
  4. Click the Remove button.
  5. Click Yes on the confirmation dialog.

Note During uninstallation of DkimX, the service Microsoft Exchange Transport will be restarted.


Concepts

Welcome to the Concepts topic. This section provides information about product features and how the product works.

This section contains:

  • Introducing DkimX: Describes what DkimX is all about.
  • Product Components: Describes the product components of DkimX.
  • Deployment Scenarios: Describes how DkimX can be deployed in existing e-m7ail environments.
  • Message Processing Logic: Describes how DkimX processes e-mail messages.


Introducing DkimX

DkimX is an add-on for MS Exchange Server 2007/2010 server which allows signing of messages according to the DKIM-specification (RFC 4871, RFC 5672).

Features:

  • Multithreaded processing engine which provides excellent performance and high scalability.
  • Supports rule-based message processing for outgoing messages in an MS Exchange 2007/2010 environment.
  • Allows configuring every aspect of the DKIM-specification for signing messages (including 3rd party signatures and multiple signatures).
  • Administration can be performed using the DkimX Management Shell (PowerShell-based command line interface) or DkimX Management Console (GUI implemented as an MMC 3.0 Snap-In).
  • Supports easy backup and restore of configuration data.
  • Provides application-specific event logs for monitoring and troubleshooting purposes.
  • Exposed performance counters allow for monitoring runtime parameters.

Note DkimX implements currently only DKIM signer functionality. Support for DKIM verifier functionality will be added in a future version.


Product Components

DkimX consists of three product components: Transport Agent, Management Shell and Management Console.

  • DkimX Transport Agent implements the run-time functionality to process e-mail messages. It is implemented as an MS Exchange 2007/2010 transport agent.
  • DkimX Management Shell provides a command-line interface for managing the configuration of DkimX. It is built on Windows PowerShell technology.
  • DkimX Management Console is a Microsoft Management Console (MMC) 3.0-based tool that provides administrators with a graphical user interface (GUI) to manage the configuration of DkimX. You can also add the DkimX Management Console snap-in to custom MMC-based tools.


Deployment Scenarios

DkimX can only be installed on MS Exchange 2007/2010 servers with the Hub/Edge Transport Server role installed. Please note the following deployment options:

  • If you send all outbound messages through Edge Transport servers, it is recommended to deploy DkimX on all your Edge Transport servers.
  • If you don't make use of Edge Transport Servers, you must deploy DkimX on all Hub Transport servers in your MS Exchange organization which are responsible for Internet mail delivery (e.g. are configured as bridgehead servers for the Internet SMTP send connectors).


Message Processing Logic

The message processing logic of DkimX works as follows:

  1. A message is received by the Exchange Transport service and then evaluated by the DkimX transport agent.
  2. The DkimX transport agent first checks if the sender address is a local address and at least one recipient is an external address. If this test fails, the message is ignored.
  3. Then the signer restrictions (excluded recipients and message size) are evaluated. If a restriction applies, the message is ignored.
  4. The message is now processed by matching it against the existing signer rules. If a signer rule matches, the specified actions are executed.


Administrator’s Guide

Welcome to the Administrator’s Guide topic.

This section contains:
  • About Domain Keys, Signer Policies and Signer Rules: Describes what domain keys, signer policies and signer rules are and how they are related.
  • Testing the Configuration: Describes how to test the configuration.
  • Backing Up and Restoring the Configuration: Describes how to back up and restore the configuration.
  • How to Replicate the Configuration Between Multiple DkimX Instances: Describes how to replicate the configuration between multiple DkimX instances.
  • Monitoring and Troubleshooting: Describes how to to monitor and troubleshoot product functionality.


About Domain Keys, Signer Policies and Signer Rules

How DkimX signs which messages is specified by three types of management objects:

  • Domain Key: A domain key object specifies the RSA key data for a specific e-mail domain and chosen selector. The private key is used for signing a message, the public key, which must be published in DNS, is used by a DKIM verifier for verifying the DKIM signature of a signed message.
  • Signer Policy: A signer policy specifies how (canonicalization, algorithm, etc.) a message is signed.
  • Signer Rule: A signer rule specifies which messages are signed using a specific domain key and signer policy.

Related Topics

Manage Domain Keys

Manage Signer Policies

Manage Signer Rules

Domain Key Properties

Signer Policy Properties

Signer Rule Properties


Testing the Configuration

To verify that your configuration is working as expected, you can send test messages to auto-responders on the Internet, which will validate a received message for having a valid DKIM signature and then respond with a reply message containing the result of the verification. The following auto-responders are currently available on the Internet:

  • sa-test@sendmail.net
  • check-auth@verifier.port25.com
  • autorespond+dkim@dk.elandsys.com
  • test@dkimtest.jason.long.name
  • dktest@exhalus.net
  • dktest@blackops.org
  • dkim-test@altn.com


Backing Up and Restoring the Configuration

The configuration of DkimX is stored in a single XML-file. This file is named Config.xml and located in the directory <InstallDir>\Data\Configuration. To backup the configuration, copy this file to a backup location. To restore the configuration, copy the saved copy of Config.xml to its original location.

IMPORTANT The private keys of domain key objects are stored unencrypted in the configuration. You must therefore make sure that only authorized users are allowed to read or write the configuration file!


How to Replicate the Configuration Between Multiple DkimX Instances

If you install and use the DkimX on more than one MS Exchange hub/edge transport server, you must make sure that all instances of the DkimX use the same configuration. The recommended approach to achieve this goal is to perform all configuration changes on a single hub/edge transport server and then copy the configuration file Config.xml, located in <InstallDir>\Data\Configuration, from this server to all other hub/edge transport servers with DkimX installed.


Monitoring and Troubleshooting

DkimX provides two mechanisms for monitoring functionality of the product components:

Event Logging

Note Though optional, we strongly recommend that you configure one or more administrative contacts, which will be notified by e-mail of critical errors and license management events.

Events are logged to the following application-specific logs:

  • netal/DkimX/Agent/Admin
  • netal/DkimX/Agent/Analytic
  • netal/DkimX/Agent/Operational
  • netal/DkimX/Management/Admin
  • netal/DkimX/Management/Analytic
  • netal/DkimX/Management/Operational

Those event logs can be viewed in Event Viewer (eventvwr.msc) below the folder Applications and Services Logs.

Note The event logs netal/DkimX/Agent/Analytic and netal/DkimX/Management/Analytic are by default disabled and not visible in Event Viewer. In case of troubleshooting problems, it may be advisable to display these event logs (Event Viewer->Any event log->View->Show Analytic and Debug Logs) and afterwards to enable them (Event Viewer->Event log to enable->Action->Enable Log).

Performance Monitoring

The operation of the DkimX transport agent can be monitored by using provided performance counters.


Administrator’s Reference

Welcome to the Administrator’s Reference topic. This section provides information about the DkimX Management Console, DkimX Management Shell, match expressions and performance counters.

This section contains:

  • DkimX Management Console: Help topic content for administrative activities and configuration properties using DkimX Management Console.
  • DkimX Management Shell: Help topic content for all cmdlets provided by the DkimX Management Shell.
  • Match Expressions: Help topic content describing the two supported types of match expressions: Wildcard expressions and regular expressions.
  • Performance Counters: Help topic content describing the provided performance counters.


DkimX Management Console

This section provides information about administrative activities and configuration properties of DkimX objects in the DkimX Management Console. Use this information as a reference for administrative activities.

This section contains:
  • Managing DkimX Objects: Help topic content for administrative activities using DkimX Management Console.
  • Property Sheets: Help topic content for all property sheets in the DkimX Management Console.


ManagementConsoleObjectManagement

Managing DkimX Objects

The following section describes how to manage the objects provided in the DkimX Management Console.

This section contains:

  • Manage Server: Description of administrative activities for the server object.
  • Manage Signer: Description of administrative activities for the signer object.
  • Manage Domain Keys: Description of administrative activities for domain keys.
  • Manage Signer Policies: Description of administrative activities for signer policies.
  • Manage Signer Rules: Description of administrative activities for signer rules.


Manage Server

The server object in the DkimX Management Console represents the MS Exchange 2007/2010 server with DkimX installed.

Apply configuration changes
  1. Select the server object.
  2. On the Action menu, select Apply Changes, or right-click and select Apply Changes.

Note The Apply Changes menu item will only be available for activation if the configuration has been changed.

Discard configuration changes
  1. Select the server object.
  2. On the Action menu, select Discard Changes, or right-click and select Discard Changes.

Note The Discard Changes menu item will only be available for activation if the configuration has been changed.

Configure the properties of the server
  1. Select the server object.
  2. On the Action menu, select Properties, or right-click and select Properties.
  3. Configure its properties on the Server Property Pages.

Related Topics

Server Properties


Manage Signer

The signer object in the DkimX Management Console represents the DKIM signer of DkimX.

Enable a local domain for DKIM signing
  1. Select the Signer object.
  2. On the Action menu, select Enable a Local Domain for DKIM Signing, or right-click and select Enable a Local Domain for DKIM Signing.
  3. Follow the wizard steps to enable a local domain for DKIM signing.
Enable/disable the signer
  1. Select the Signer object.
  2. Depending on the current state, on the Action menu, select Enable or Disable, or right-click and select Enable or Disable.
Configure the properties of the signer
  1. Select the Signer object.
  2. On the Action menu, select Properties, or right-click and select Properties.
  3. Configure its properties on the Signer Property Pages.

Related Topics

Signer Properties


Manage Domain Keys

Domain keys specify the key data to use for signing messages.

Create a domain key
  1. Select the Domain Keys node.
  2. On the Action menu, select New Domain Key..., or right-click and select New Domain Key....
  3. On the New Domain Key dialog, select a domain, specify the selector and choose the desired RSA key size and click OK.
Configure the properties of a domain key
  1. Select the domain key you want to configure.
  2. Double-click, or, on the Action menu, select Properties, or right-click and select Properties.
  3. Configure its properties.
Delete a domain key
  1. Select the domain key you want to delete.
  2. Click the Delete button, or, on the Action menu, select Delete, or right-click and select Delete.
  3. Confirm the deletion of the selected domain key.
Export the private key of a domain key
  1. Select the domain key whose private key you want to export to file.
  2. Click the Export Private Key... button, or, on the Action menu, select Export Private Key..., or right-click and select Export Private Key....
  3. Follow the instructions on the Export Private Key to File Wizard pages.
Import the private key of a domain key
  1. Select the domain key into which you want to import a private key from file.
  2. Click the Import Private Key... button, or, on the Action menu, select Import Private Key... , or right-click and select Import Private Key....
  3. Follow the instructions on the Import Private Key from File Wizard pages.

Related Topics

Domain Key Properties


Manage Signer Policies

Signer policies specify how messages will be signed.

Create a signer policy
  1. Select the Policies node.
  2. On the Action menu, select New Policy..., or right-click and select New Policy....
  3. On the New Policy dialog, enter its name and click OK.
Copy a signer policy
  1. Select the signer policy you want to copy.
  2. On the Action menu, select Copy, or right-click and select Copy.
Rename a signer policy
  1. Select the signer policy you want to rename.
  2. On the Action menu, select Rename, or right-click and select Rename.
  3. Change the signer policy name in the edit field and then press Enter.
Configure the properties of a signer policy
  1. Select the signer policy you want to configure.
  2. Double-click, or, on the Action menu, select Properties, or right-click and select Properties.
  3. Configure its properties.
Delete a signer policy
  1. Select the signer policy you want to delete.
  2. Click the Delete button, or, on the Action menu, select Delete, or right-click and select Delete.
  3. Confirm the deletion of the selected signer policy.

Related Topics

Signer Policy Properties


Manage Signer policies

Manage Signer Rules

Signer rules specify which messages will be signed.

Create a signer rule
  1. Select the Rules node.
  2. On the Action menu, select New Rule..., or right-click and select New Rule....
  3. On the New Rule dialog, enter its name, select a domain key and signer policy to use and click OK.
Change the priority of a signer rule
  1. Select the signer rule of which you want to change the priority.
  2. On the Action menu, select Change Priority..., or right-click and select Change Priority....
  3. Specify the desired new priority on the Change Rule Priority dialog.
Enable/disable a signer rule
  1. Select the signer rule you want to enable/disable.
  2. Depending on the current state, on the Action menu, select Enable or Disable, or right-click and select Enable or Disable.
Copy a signer rule
  1. Select the signer rule you want to copy.
  2. On the Action menu, select Copy, or right-click and select Copy.
Rename a signer rule
  1. Select the signer rule you want to rename.
  2. On the Action menu, select Rename, or right-click and select Rename.
  3. Change the signer rule name in the edit field and then press Enter.
Configure the properties of a signer rule
  1. Select the signer rule you want to configure.
  2. Double-click, or, on the Action menu, select Properties, or right-click and select Properties.
  3. Configure its properties.
Delete a signer rule
  1. Select the signer rule you want to delete.
  2. Click the Delete button, or, on the Action menu, select Delete, or right-click and select Delete.
  3. Confirm the deletion of the selected signer rule.

Related Topics

Signer Rule Properties


Property Sheets

The following section describes how you should use the property sheets to properly configure DkimX. The information provided reflects the context-sensitive Help that is provided for all property sheets. You can also access this information by clicking the Help button on any property sheet.

Note The information presented in this section is context-sensitive; that is, many concepts and procedures described in this section relate directly to specific actions that can be carried out in DkimX Management Console. The topics are not intended to be read as a stand-alone reference.

Viewing Property Sheets

To view property sheets in the DkimX Management Console, select the item you are interested in and then click the Properties button, or, on the Action menu, select Properties. You can also right-click an item and select Properties.

This section contains:

  • Server Properties: Property sheet used to view and configure the server properties.
  • Signer Properties: Property sheet used to view and configure the signer properties.
  • Domain Key Properties: Property sheet used to view and configure the properties of a domain key.
  • Signer Policy Properties: Property sheet used to view and configure the properties of a signer policy.
  • Signer Policy Properties: Property sheet used to view and configure the properties of a signer Policy.


Server Properties

The Server property sheet consists of the following property pages:

General

Use this property page to view information about the installed product, the current configuration and MS Exchange Server.

Product
This information element shows version, release date and installation date of DkimX installed on the computer.
Configuration
This information element shows information about the current server configuration.
MS Exchange Server
This information element shows version and transport role type (Hub/Edge) of the MS Exchange Server.

Administrative Contacts

Use this property page to specify the administrative contacts, which will be notified of critical errors and license management events.

Administrative Contacts
Use this list box to specify the SMTP e-mail addresses of administrative contacts, which will be notified by e-mail of critical errors and license management events.
Add
Use this button to display the New Administrative Contact dialog to add an administrative contact by specifying its SMTP address.
Remove
Use this button to remove the selected administrative contacts from the list.

License & Maintenance

Use this property page to view the properties of the product license certificate.

License Certificate

Filename
The value of this property is the filename of the license certificate file which contains the license data.
GUID
The value of this property is the globally unique identifier of the license certificate file.

License

Licensee
The value of this property is the name of the licensee for whom this license was issued.
Type
The value of this property is either Evaluation for a trial license, or Server or Enterprise for a customer license.
Issue date
The value of this property is the date when the license has been issued.
Expiration date
The value of this property is the expiration date of the license. In case of a customer license, which is perpetual, <Never> is displayed.
GUID
The value of this property is the globally unique identifier of the license.

Maintenance Period

Start date
The value of this property is the start date of the maintenance period. This information will only be displayed in case of a customer license.
End date
The value of this property is the end date of the maintenance period. This information will only be displayed in case of a customer license.
GUID
The value of this property is the globally unique identifier of the maintenance period. This information will only be displayed in case of a customer license.

Related Topics

Manage Server


Signer Properties

The Signer property sheet consists of the following property pages:

General

Use this property page to enable or disable the signer.

Enabled
Use this check box to specify if messages should be processed by the signer.
Treat the NULL envelope sender address as a local one
Use this check box to specify if the NULL envelope sender address (<>) should be treated as being a local envelope sender address. Automatic response messages, e.g. out-of-office messages, have a NULL envelope sender address. This means that this setting must be enabled if the processing of such automatic reponse messages is desired.

Local Domains

Use this property page to specify which e-mail domains will be treated as local domains.

Include Accepted Domains from MS Exchange
Use this check box to specify if accepted domains (Authoritative and Internal Relay only) from MS Exchange will be treated as local domains.
Custom local domains
Use this list box to specify custom e-mail domains as local domains.
Add
Use this button to display the New Custom Local Domain dialog to add an e-mail domain as local domain.
Remove
Use this button to remove the selected custom local domains from the list.
Show Local Domains...
Click this button to display the list of currently configured local domains.

Restrictions

Use this property page to view and specify restrictions to prevent messages from being processed by the signer.

Excluded recipients
Use this list box to specify excluded recipients (wildcard and regular expressions are supported). When at least one recipient of a message matches an excluded recipient, the message will not be processed.
Add
Use this button to display the New Excluded Recipient dialog to add an excluded recipient.
Remove
Use this button to remove the selected excluded recipients from the list.
Maximum header size
Use this setting to specify the maximum size of the SMTP header of messages that will be processed by the signer. If the size of the SMTP header of a message exceeds this value, the message will not be processed by the signer.
Maximum message size
Use this setting to specify the maximum total size of messages that will be processed by the signer. If the total size of a message exceeds this value, the message will not be processed by the signer.

Related Topics

Manage Signer

Match Expressions


Domain Key Properties

The Domain Key property sheet consists of the following property page:

General

Use this property page to view information about the domain key and to manage the corresponding DNS TXT record.

Description
Use this text box to specify a description for the domain key. This information element is optional and has no functional relevance.
Domain
Shows the domain to which this domain key applies.
Selector
Shows the selector of this domain key.
RSA key size
Shows the RSA key size of this domain key.
DNS TXT Record...
Click this button to display the DNS TXT Record dialog.

Related Topics

Manage Domain Keys


Signer Policy Properties

The Signer Policy property sheet consists of the following property pages:

General

Use this property page to view and change the description of this signer Policy.

Description
Use this text box to specify a description for the signer Policy. This information element is optional and has no functional relevance.

Canonicalization

Use this property page to view and specify which canonicalization will be used for the header and body of a message to sign.

Header canonicalization
Use this combo box to specify which canonicalization (Simple/Relaxed) to use for the header of a message to sign.
Body canonicalization
Use this combo box to specify which canonicalization (Simple/Relaxed) to use for the body of a message to sign.
Include canonicalization in signature even when having default value
Use this check box to specify if the canonicalization attribute will be included in the signature even it if has the default value (= 'simple/simple').

Algorithm

Use this property page to view and specify the algorithm to use for signing a message.

Algorithm
Use this combo box to specify which algorithm (SHA-RSA1/SHA-RSA256) to use for signing a message.

Header Fields

Use this property page to view and specify which header fields will be included in the signature.

Header fields
Use this list box to specify which header fields will be signed.
Restore Defaults
Use this button to restore the default header field list.
Add
Use this button to display the New Header Field dialog to add a header field.
Remove
Use this button to remove the selected header fields from the list.

Time

Use this property page to view and specify the algorithm to use for signing a message.

Include timestamp in signature
Use this check box to specify if a timestamp indicating the time of signing will be included in the signature.
Include expiration time in signature
Use this check box to specify if the expiration time will be included in the signature. You can specify the expiration time either as a relative or an absolute value.

Identity

Use this property page to view and specify the identity information element for the signature.

Identity template
Use this combo box to specify the desired identity template. Depending on the selected template, you may have to specify values for Static local part and Subdomain.
Include identity in signature even when having default value
Use this check box to specify if the identity information element will be included in the signature even it if has the default value (= '@<SigningDomain>').

Advanced

Use this property page to view and specify advanced settings for signature processing.

Body length count
Specify if the body length count information element will be excluded from the signature, which implies that the entire message body will be hashed, or if the body length count information element will be included in the signature, in which case you have also to specify if the entire message body will be hashed or only a specific number of bytes.
Include public key query methods in signature
Use this check box to specify if the optional public key query methods information element will be included in the signature.
Include copies of signed header fields in signature for diagnostic use
Use this check box to specify if copies of header fields to sign will be included in the signature.

Note It is not recommended to activate this setting for normal operation. Limit use of this feature for diagnostic purposes.

Related Topics

Manage Signer Policies


Signer Rule Properties

The Signer Rule property sheet consists of the following property pages:

General

Use this property page to view and change the description and state of this signer rule.

Description
Use this text box to specify a description for the signer rule. This information element is optional and has no functional relevance.
Enabled
Use this text box to specify if the signer rule is enabled or disabled.

Conditions

Use this property page to view and specify the conditions a message must meet for this rule to apply.

Apply From address filter
Specify the filter expression for the From address of messages. Wildcard and regular expressions are supported.
Apply header field filter
Specify the filter expressions for the header field name and value. Wildcard and regular expressions are supported.

Actions

Use this property page to view and specify the actions to execute when a message meets the configured conditions.

Sign messages using this domain key and rule
Specify if a message which meets the configured conditions will be signed or not, and which domain key and rule will be uses for signing.
Remove existing signature
Use this check box to specify if existing signatures will be removed from a message which meets the configured conditions.
Stop processing more rules
Specify if a message which meets the configured conditions will be evaluated against rules with lower priority or not.

Related Topics

Manage Signer Rules

Match Expressions


DkimX Management Shell

This section provides information about the cmdlets for configuring DkimX using the DkimX Management Shell. Use this information as a reference for administrative activities.

This section contains:

  • Cmdlets: Help topic content which describes the cmdlets for configuring DkimX using the DkimX Management Shell.


DkimX Cmdlets

This section contains:

  • Disable-DkimSigner
  • Disable-DkimSignerRule
  • Enable-DkimSigner
  • Enable-DkimSignerRule
  • Export-DkimDomainKey
  • Get-DkimConfig
  • Get-DkimDomainKey
  • Get-DkimLicenseCertificate
  • Get-DkimServer
  • Get-DkimSigner
  • Get-DkimSignerLocalDomain
  • Get-DkimSignerPolicy
  • Get-DkimSignerRule
  • Import-DkimDomainKey
  • New-DkimDnsTxtRecord
  • New-DkimDomainKey
  • New-DkimSignerPolicy
  • New-DkimSignerRule
  • Remove-DkimDomainKey
  • Remove-DkimSignerPolicy
  • Remove-DkimSignerRule
  • Rename-DkimSignerPolicy
  • Rename-DkimSignerRule
  • Reset-DkimConfig
  • Save-DkimConfig
  • Set-DkimDomainKey
  • Set-DkimServer
  • Set-DkimSigner
  • Set-DkimSignerPolicy
  • Set-DkimSignerRule


Disable-DkimSigner

Disables the DKIM signer.

Syntax

Disable-DkimSigner [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Disable-DkimSigner cmdlet disables the DKIM signer in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example disables the DKIM signer in the cached configuration.
Disable-DkimSigner


Disable-DkimSignerRule

Disables a signer rule.

Syntax

Disable-DkimSignerRule [-Name] <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Disable-DkimSignerRule -InputObject <DkimSignerRule> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerRule | Specifies a DkimSignerRule object that represents the signer rule to be disabled. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerRule command. You can also pipe a DkimSignerRule object to Disable-DkimSignerRule.
Name | Required | String | Specifies the name of the signer rule to be disabled. Wildcards are not permitted. You can also pipe a signer rule name to Disable-DkimSignerRule.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Disable-DkimSignerRule cmdlet disables the specified signer rule in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example disables the signer rule with the name "Rule for dkimx.com" in the cached configuration.
Disable-DkimSignerRule -Name "Rule for dkimx.com"


Enable-DkimSigner

Enables the DKIM signer.

Syntax

Enable-DkimSigner [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Enable-DkimSigner cmdlet enables the DKIM signer in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example enables the DKIM signer in the cached configuration.
Enable-DkimSigner


Enable-DkimSignerRule

Enables a signer rule.

Syntax

Enable-DkimSignerRule [-Name] <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Enable-DkimSignerRule -InputObject <DkimSignerRule> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerRule | Specifies a DkimSignerRule object that represents the signer rule to be enabled. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerRule command. You can also pipe a DkimSignerRule object to Enable-DkimSignerRule.
Name | Required | String | Specifies the name of the signer rule to be enabled. Wildcards are not permitted. You can also pipe a signer rule name to Enable-DkimSignerRule.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Enable-DkimSignerRule cmdlet enables the specified signer rule in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example enables the signer rule with the name "Rule for dkimx.com" in the cached configuration.
Enable-DkimSignerRule -Name "Rule for dkimx.com"


Export-DkimDomainKey

Exports the private key of an existing domain key to file.

Syntax

Export-DkimDomainKey [-Name] <String> -FilePath <String> [-Algorithm <Pbes2Algorithm>] [-Format <PrivateKeyFileFormat>] [-Iterations <Int32>] [-Password <SecureString>] [-Prf <Pbkdf2Prf>] [<CommonParameters>]
Export-DkimDomainKey -InputObject <DkimDomainKey> -FilePath <String> [-Algorithm <Pbes2Algorithm>] [-Format <PrivateKeyFileFormat>] [-Iterations <Int32>] [-Password <SecureString>] [-Prf <Pbkdf2Prf>] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
FilePath | Required | String | Specifies the path to the export file. If the file exists its contents will be overwritten.
InputObject | Required | DkimDomainKey | Specifies a DkimDomainKey object that represents the domain key whose private key will be exported. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimDomainKey command. You can also pipe a DkimDomainKey object to Export-DkimDomainKey.
Name | Required | String | Specifies the name of the domain key whose private key will be exported. You can also pipe a domain key name to Export-DkimDomainKey.
Algorithm | Optional | Pbes2Algorithm | Specifies the encryption algorithm to use for protecting the private key. Valid values are: - Aes128Cbc - Aes192Cbc - Aes256Cbc The default value is Aes256Cbc.
Format | Optional | PrivateKeyFileFormat | Specifies the format of the output file. Valid values are: - Pem (PKCS#8 base-64 encoded) - Der (PKCS#8 encoded binary) - Xml (XKMS 2.0) The default value is Pem.
Iterations | Optional | Int32 | Specifies the number of iteration to use for deriving the encryption key when protecting the private key. Valid values are in the range 1..1000000000. The default value is 2048.
Password | Optional | SecureString | Specifies the password for protecting the private key. If this parameter is not specified, the private key is exported unprotected.
Prf | Optional | Pbkdf2Prf | Specifies the pseudorandom function to use for deriving the encryption key when protecting the private key. Valid values are: - HmacWithSha1 - HmacWithSha256 - HmacWithSha512 The default value is HmacWithSha512.

Detailed Description

The Export-DkimDomainKey cmdlet exports the private key of the specified domain key to file. The private key can be exported unprotected in form of a PKCS #8 PrivateKeyInfo structure (DER encoded binary or base-64 encoded) or XML-formatted (XKMS 2.0 format). The private key can be exported protected by a password in form of a PKCS #8 EncryptedPrivateKeyInfo structure (DER encoded binary or base-64 encoded). The protection is implemented according to PKCS #5 v2.0: It can use hmacWithSHA1, hmacWithSHA256 or hmacWithSHA512 as pseudorandom function (PRF) and aes128-cbc, aes192-cbc or aes256-cbc as encryption algorithm.

Examples

-------------------------- Example 1 --------------------------

The private key of the domain key "dkimx.com:nov2015" will be exported unprotected to the export file "C:\Temp\domainkey-nov2015.der" in DER format.
Export-DkimDomainKey -Name "dkimx.com:nov2015" -FilePath "C:\Temp\domainkey-nov2015.der" -Format Der

-------------------------- Example 2 --------------------------

The private key of the domain key "dkimx.com:nov2015" will be exported password protected to the export file "C:\Temp\domainkey-nov2015.pem" in the default PEM format.
$pwd = ConvertTo-SecureString -String (Read-Host "Type the password to use") -AsPlainText -Force
Export-DkimDomainKey -Name "dkimx.com:nov2015" -FilePath "C:\Temp\domainkey-nov2015.pem" -Password $pwd


Get-DkimConfig

Gets information about the stored configuration.

Syntax

Get-DkimConfig [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
None |  |  |

Detailed Description

The Get-DkimConfig cmdlet returns a DkimConfig object, which contains information about the stored configuration: Version, Usn, LastChanged.

Examples

EXAMPLE 1

This example gets information about the stored configuration.
Get-DkimConfig


Get-DkimDomainKey

Gets the domain keys.

Syntax

Get-DkimDomainKey [[-Name] <String[]>] [<CommonParameters>]
Get-DkimDomainKey -InputObject <DkimDomainKey[]> [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimDomainKey[] | Specifies DkimDomainKey objects representing the domain keys to be retrieved. Enter a variable that contains the objects, or type a command or expression that gets the objects. You can also pipe a DkimDomainKey object to Get-DkimDomainKey.
Name | Optional | String[] | Specifies the name of domain keys to be retrieved. Wildcards are permitted. If this parameter is not specified, Get-DkimDomainKey gets all of the configured domain keys.

Detailed Description

The Get-DkimDomainKey cmdlet gets objects that represent the domain keys of the cached configuration.

Examples

EXAMPLE 1

This example gets all domain keys for the domain dkimx.com.
Get-DkimDomainKey -Name "dkimx.com:*"


Get-DkimLicenseCertificate

Gets information of the license certificate currently in use.

Syntax

Get-DkimLicenseCertificate [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
None |  |  |

Detailed Description

The Get-DkimLicenseCertificate cmdlet returns a DkimLicenseCertificate object, which contains information of the license certificate currently in use, which includes information about the product license and maintenance period.

Examples

EXAMPLE 1

This example gets information of the license certificate currently in use.
Get-DkimLicenseCertificate


Get-DkimServer

Gets information about the DKIM server.

Syntax

Get-DkimServer [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
None |  |  |

Detailed Description

The Get-DkimServer cmdlet returns a DkimServer object, which contains information about the installed product release, the MS Exchange Server installation and the configured administrative contacts.

Examples

EXAMPLE 1

This example gets information about the DKIM server.
Get-DkimServer


Get-DkimSigner

Gets information about the DKIM signer.

Syntax

Get-DkimSigner [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
None |  |  |

Detailed Description

The Get-DkimSigner cmdlet returns a DkimSigner object, which contains information about the DKIM signer.

Examples

EXAMPLE 1

This example gets information about the DKIM signer.
Get-DkimSigner


Get-DkimSignerLocalDomain

Gets the local domains of the DKIM signer.

Syntax

Get-DkimSignerLocalDomain [[-Name] <String[]>] [<CommonParameters>]
Get-DkimSignerLocalDomain -InputObject <DkimLocalDomain[]> [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimLocalDomain[] | Specifies DkimLocalDomain objects representing the signer local domains to be retrieved. Enter a variable that contains the objects, or type a command or expression that gets the objects. You can also pipe a DkimLocalDomain object to Get-DkimSignerLocalDomain.
Name | Optional | String[] | Specifies the name of signer local domains to be retrieved. Wildcards are permitted. If this parameter is not specified, Get-DkimSignerLocalDomain gets all of the configured local domains for the signer.

Detailed Description

The Get-DkimSignerLocalDomain cmdlet gets objects that represent the local domains used by the DKIM signer.

Examples

EXAMPLE 1

This example gets all local domains of the signer which are subdomains of the domain dkimx.com.
Get-DkimSignerLocalDomain -Name "*.dkimx.com"


Get-DkimSignerPolicy

Gets the signer policies.

Syntax

Get-DkimSignerPolicy [[-Name] <String[]>] [<CommonParameters>]
Get-DkimSignerPolicy -InputObject <DkimSignerPolicy[]> [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerPolicy[] | Specifies DkimSignerPolicy objects representing the signer policies to be retrieved. Enter a variable that contains the objects, or type a command or expression that gets the objects. You can also pipe a DkimSignerPolicy object to Get-DkimSignerPolicy.
Name | Optional | String[] | Specifies the name of signer policies to be retrieved. Wildcards are permitted. If this parameter is not specified, Get-DkimSignerPolicy gets all of the configured signer policies.

Detailed Description

The Get-DkimSignerPolicy cmdlet gets objects that represent the signer policies of the cached configuration.

Examples

EXAMPLE 1

This example gets all signer policies whose names contain "dkimx.com".
Get-DkimSignerPolicy -Name "*dkimx.com*"


Get-DkimSignerRule

Gets the signer rules.

Syntax

Get-DkimSignerRule [[-Name] <String[]>] [<CommonParameters>]
Get-DkimSignerRule -InputObject <DkimSignerRule[]> [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerRule[] | Specifies DkimSignerRule objects representing the signer rules to be retrieved. Enter a variable that contains the objects, or type a command or expression that gets the objects. You can also pipe a DkimSignerRule object to Get-DkimSignerRule.
Name | Optional | String[] | Specifies the name of signer rules to be retrieved. Wildcards are permitted. If this parameter is not specified, Get-DkimSignerRule gets all of the configured signer rules.

Detailed Description

The Get-DkimSignerRule cmdlet gets objects that represent the signer rules of the cached configuration.

Examples

EXAMPLE 1

This example gets the signer rule with the name "Rule for dkimx.com".
Get-DkimSignerRule -Name "Rule for dkimx.com"


Import-DkimDomainKey

Imports a private key from file into an existing domain key.

Syntax

Import-DkimDomainKey [-Name] <String> -FilePath <String> [-Confirm [<SwitchParameter>]] [-Format <PrivateKeyFileFormat>] [-Password <SecureString>] [-WhatIf [<SwitchParameter>]] [<CommonParameters>]
Import-DkimDomainKey -InputObject <DkimDomainKey> -FilePath <String> [-Confirm [<SwitchParameter>]] [-Format <PrivateKeyFileFormat>] [-Password <SecureString>] [-WhatIf [<SwitchParameter>]] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
FilePath | Required | String | Specifies the path to the import file.
InputObject | Required | DkimDomainKey | Specifies a DkimDomainKey object that represents the domain key into which the private key will be imported. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimDomainKey command. You can also pipe a DkimDomainKey object to Import-DkimDomainKey.
Name | Required | String | Specifies the name of the domain key into which the private key will be imported. You can also pipe a domain key name to Import-DkimDomainKey.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Format | Optional | PrivateKeyFileFormat | Specifies the format of the input file. Valid values are: - Pem (PKCS#8 base-64 encoded) - Der (PKCS#8 encoded binary) - Xml (XKMS 2.0) If this parameter is not specified, the format is automatically detected.
Password | Optional | SecureString | Specifies the password to use for decrypting the protected private key. If this parameter is not specified, an unprotected private key is expected.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Import-DkimDomainKey cmdlet imports a private key from file into the specified domain key. An unprotected private key can be imported in form of a PKCS #8 PrivateKeyInfo structure (DER encoded binary or base-64 encoded) or XML-formatted (XKMS 2.0 format). A password protected private key can be imported in form of a PKCS #8 EncryptedPrivateKeyInfo structure (DER encoded binary or base-64 encoded). The following PKCS #5 v2.0 mechanisms are supported: hmacWithSHA1, hmacWithSHA256 or hmacWithSHA512 as pseudorandom function (PRF) and aes128-cbc, aes192-cbc or aes256-cbc as encryption algorithm.

Examples

-------------------------- Example 1 --------------------------

The private key from the unprotected import file "C:\Temp\domainkey-nov2015.der" will be imported into the domain key "dkimx.com:nov2015". The format of the input file will be automatically detected.
Import-DkimDomainKey -Name "dkimx.com:nov2015" -FilePath "C:\Temp\domainkey-nov2015.der"

-------------------------- Example 2 --------------------------

The private key from the password protected import file "C:\Temp\domainkey-nov2015.der" will be imported into the domain key "dkimx.com:nov2015". The format of the input file will be automatically detected.
$pwd = ConvertTo-SecureString -String (Read-Host "Type the password to use") -AsPlainText -Force
Import-DkimDomainKey -Name "dkimx.com:nov2015" -FilePath "C:\Temp\domainkey-nov2015.der" -Password $pwd


New-DkimDnsTxtRecord

Creates a new DNS TXT record.

Syntax

New-DkimDnsTxtRecord [-Name] <String> [-AcceptableHashAlgorithms <DomainKeyHashAlgorithms>] [-Flags <DomainKeyFlags>] [-Granularity <String>] [-KeyType <DomainKeyKeyType>] [-Notes <String>] [-ServiceTypes <DomainKeyServiceTypes>] [<CommonParameters>]
New-DkimDnsTxtRecord -InputObject <DkimDomainKey> [-AcceptableHashAlgorithms <DomainKeyHashAlgorithms>] [-Flags <DomainKeyFlags>] [-Granularity <String>] [-KeyType <DomainKeyKeyType>] [-Notes <String>] [-ServiceTypes <DomainKeyServiceTypes>] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimDomainKey | Specifies a DkimDomainKey object that represents the domain key whose properties will be used for generating the DNS TXT record. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimDomainKey command. You can also pipe a DkimDomainKey object to New-DkimDnsTxtRecord.
Name | Required | String | Specifies the name of the domain key whose properties will be used for generating the DNS TXT record. You can also pipe a domain key name to New-DkimDnsTxtRecord.
AcceptableHashAlgorithms | Optional | DomainKeyHashAlgorithms | Specifies the value of the acceptable hash algorithms (h=) tag. The following values can be specified: - Sha1 - Sha256 - Sha1, Sha256 If not specified, the created DNS TXT record will not include the acceptable hash algorithms (h=) tag.
Flags | Optional | DomainKeyFlags | Specifies the value of the flags (t=) tag. The following values can be specified: - TestMode - DisallowSubdomains - TestMode, DisallowSubdomains If not specified, the created DNS TXT record will not include the flags (t=) tag.
Granularity | Optional | String | Specifies the value of the granularity (g=) tag. If not specified, the created DNS TXT record will not include the granularity (g=) tag.
KeyType | Optional | DomainKeyKeyType | Specifies the value of the key type (k=) tag. The following value can be specified: - Rsa If not specified, the created DNS TXT record will not include the key type (k=) tag.
Notes | Optional | String | Specifies the value of the notes (n=) tag. If not specified, the created DNS TXT record will not include the notes (n=) tag.
ServiceTypes | Optional | DomainKeyServiceTypes | Specifies the value of the service type (s=) tag. The following values can be specified: - All - Email - All, Email If not specified, the created DNS TXT record will not include the service type (s=) tag.

Detailed Description

The New-DkimDnsTxtRecord cmdlet creates a new DkimDnsTxtRecord object. The properties of this new object can then be used to manually create the DNS TXT record in the relevant DNS zone. The created DkimDnsTxtRecord object is only a temporary one, it is not stored in the cached configuration.

Examples

EXAMPLE 1

This example creates and displays DNS TXT record data for the domain key with name "dkimx.com:sep2011".
New-DkimDnsTxtRecord -Name "dkimx.com:sep2011" -KeyType Rsa

EXAMPLE 2

This example creates and displays DNS TXT record data for all domain keys for domain dkimx.com.
Get-DkimDomainKey -Name "dkimx.com:*" | New-DkimDnsTxtRecord


New-DkimDomainKey

Creates a new domain key.

Syntax

New-DkimDomainKey [-Domain] <String> [-Selector] <String> [-Confirm] [-Description <String>] [[-RsaKeySize] <Int32>] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Domain | Required | String | Specifies the e-mail domain of the domain key to create. The domain name is combined with the selector to implicitly construct the name of the domain key in the format <domain>:<selector>.
Selector | Required | String | Specifies the selector of the domain key to create. You can specify an arbitrary string but it must syntactically conform to the rules of one or more DNS labels (e.g. sep2011, key5.marketing).
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Description | Optional | String | Specifies a description for the domain key.
RsaKeySize | Optional | Int32 | Specifies the size of the RSA key for the domain key to create. The following values can be specified: - 512 - 768 - 1024 - 1536 - 2048 The default value is 1024.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The New-DkimDomainKey cmdlet creates a new domain key for the specified domain and selector in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example creates a new domain key for domain dkimx.com and selector dec2011 with an RSA key size of 1536 bytes.
New-DkimDomainKey -Domain "dkimx.com" -Selector "dec2011" -RsaKeySize 1536


New-DkimSignerPolicy

Creates a new signer policy.

Syntax

New-DkimSignerPolicy [-Name] <String> [-AddProductIdHeaderField [<Boolean>]] [-Algorithm <DkimAlgorithm>] [-AlwaysIncludeCanonicalization [<Boolean>]] [-AlwaysIncludeIdentity [<Boolean>]] [-AlwaysIncludeQueryMethods [<Boolean>]] [-BodyCanonicalization <DkimCanonicalization>] [-BodyLength <Object>] [-Confirm] [-Description <String>] [-Expiration <Object>] [-HeaderCanonicalization <DkimCanonicalization>] [-HeaderFields <String[]>] [-Identity <String>] [-IncludeCopiedHeaderFields [<Boolean>]] [-IncludeTimestamp [<Boolean>]] [-QueryMethods <DkimQueryMethods>] [-TemplateInstance <String>] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Name | Required | String | Specifies the name of the new signer policy. Because the name of a signer policy must be unique, you cannot specify the name of an existing signer policy.
AddProductIdHeaderField | Optional | Boolean | Specifies if a product-ID header field will be added to messages. The default value is $true.
Algorithm | Optional | DkimAlgorithm | Specifies the algorithm to be used for generating the signature. Valid values are: - RsaSha1 - RsaSha256 The default value is RsaSha256.
AlwaysIncludeCanonicalization | Optional | Boolean | Specifies if the message canonicalization (c=) tag will be included in the signature even when both the header canonicalization and the body canonicalization have the default value of Simple. The default value is $false.
AlwaysIncludeIdentity | Optional | Boolean | Specifies if the identity (i=) tag will be included in the signature even when identity has the default value of @<SigningDomain>. The default value is $false.
AlwaysIncludeQueryMethods | Optional | Boolean | Specifies if the query methods (q=) tag will be included in the signature even when query methods has the default value of DnsTxt. The default value is $false.
BodyCanonicalization | Optional | DkimCanonicalization | Specifies the canonicalization method for the body of messages. Valid values are: - Simple - Relaxed The default value is Simple.
BodyLength | Optional | Object | Specifies how many bytes of the body of messages will be signed and if the body length count (l=) tag will be added to the signature. Valid values are: - "Exclude": The entire body will be signed. The body length count (l=) tag will not be added to the signature. - "Include": The entire body will be signed. The body length count (l=) tag will be added to the signature. - Int32: The specified number of body bytes will be signed. The specified number must be 0 or greater. The body length count (l=) tag will be added to the signature. The default value is "Exclude".
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Description | Optional | String | Specifies a description for the signer policy.
Expiration | Optional | Object | Specifies if the expiration (x=) tag will be added to the signature and if yes, which value the expiration (x=) tag will have. Valid values are: - "None": The expiration (x=) tag will not be added to the signature. - DateTime: The expiration (x=) tag will be added to the signature having the value of the specified DateTime object. - TimeSpan: The expiration (x=) tag will be added to the signature having the value of the specified TimeSpan object added to the signing time. The default value is "None".
HeaderCanonicalization | Optional | DkimCanonicalization | Specifies the canonicalization method for the header of messages. Valid values are: - Simple - Relaxed The default value is Simple.
HeaderFields | Optional | String[] | Specifies an array of header fields to be signed. Each entry consists of the header field name, followed by a colon and the signing mode. The signer mode can be: - SignIfExists - SignAlways The default value is: From:SignIfExists Sender:SignIfExists Reply-To:SignIfExists Subject:SignIfExists Date:SignIfExists Message-ID:SignIfExists To:SignIfExists Cc:SignIfExists MIME-Version:SignIfExists Content-Type:SignIfExists Content-Transfer-Encoding:SignIfExists Content-ID:SignIfExists Content-Description:SignIfExists Resent-Date:SignIfExists Resent-From:SignIfExists Resent-Sender:SignIfExists Resent-To:SignIfExists Resent-Cc:SignIfExists Resent-Message-ID:SignIfExists In-Reply-To:SignIfExists References:SignIfExists List-Id:SignIfExists List-Help:SignIfExists List-Unsubscribe:SignIfExists List-Subscribe:SignIfExists List-Post:SignIfExists List-Owner:SignIfExists List-Archive
Identity | Optional | String | Specifies the template for generating the identity (i=) tag of the signature. The value must end with <SigningDomain>, which is a placeholder for the domain of the domain key being used. Between the character '@' and <SigningDomain> one or more domain labels can be specified. Before the character '@' you can specify <FromAddressLocalPart>, which is a placeholder for the local-part of the From address, or a static local-part or the empty string. The default value is @<SigningDomain>.
IncludeCopiedHeaderFields | Optional | Boolean | Specifies if copies of signed header fields will be included in the signature (z= tag). Enable this feature only for diagnostic use. The default value is $false.
IncludeTimestamp | Optional | Boolean | Specifies if the timestamp (t=) tag will be included in the signature. The default value is $false.
QueryMethods | Optional | DkimQueryMethods | Specifies the query methods used to retrieve the public key. Currently only one method is defined: - DnsTxt The default value is DnsTxt.
TemplateInstance | Optional | String | Specifies the name of an existing signer policy to be used as a template for the new signer policy. If an existing signer policy is specified as a template, settings for the new signer policy, which are not explicitly specified by optional parameters, will be copied from the existing signer policy.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The New-DkimSignerPolicy cmdlet creates a new signer policy in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example creates a new signer policy with the name "Default with RSASHA1" where all property values are copied from the existing signer policy "Default", except the Algorithm property, which is set to RsaSha1.
New-DkimSignerPolicy -Name "Default with RSASHA1" -TemplateInstance "Default" -Algorithm RsaSha1


New-DkimSignerRule

Creates a new signer rule.

Syntax

New-DkimSignerRule -DomainKey <String> [-Name] <String> -Policy <String> [-Confirm] [-Description <String>] [-Enabled [<Boolean>]] [-FromAddressFilter <String>] [-HeaderFieldFilter <String>] [-Priority <Int32>] [-RemoveExistingSignatures [<Boolean>]] [-SignMessages [<Boolean>]] [-StopProcessingRules [<Boolean>]] [-WhatIf] [<CommonParameters>]
New-DkimSignerRule [-Name] <String> -TemplateInstance <String> [-Confirm] [-Description <String>] [-DomainKey <String>] [-Enabled [<Boolean>]] [-FromAddressFilter <String>] [-HeaderFieldFilter <String>] [-Policy <String>] [-Priority <Int32>] [-RemoveExistingSignatures [<Boolean>]] [-SignMessages [<Boolean>]] [-StopProcessingRules [<Boolean>]] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
DomainKey | Required | String | Specifies the name of an existing domain key, whose RSA key is used when a matching message is signed. If you are not copying values from another signer rule by providing the TemplateInstance parameter, you must provide this parameter even when signing of messages by this rule is disabled (-SignMessages $false).
Name | Required | String | Specifies the name of the new signer rule. Because the name of a signer rule must be unique, you cannot specify the name of an existing signer rule.
Policy | Required | String | Specifies the name of an existing signer policy, whose settings are used when a matching message is signed. If you are not copying values from another signer rule by providing the TemplateInstance parameter, you must provide this parameter even when signing of messages by this rule is disabled (-SignMessages $false).
TemplateInstance | Required | String | Specifies the name of an existing signer rule to be used as a template for the new signer rule. If an existing signer rule is specified as a template, settings for the new signer rule, which are not explicitly specified by optional parameters, will be copied from the existing signer rule.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Description | Optional | String | Specifies a description for the signer rule.
Enabled | Optional | Boolean | Specifies whether the signer rule will initially be enabled or not. If you specify $true, the signer rule will be enabled. If you specify $false, the signer rule will be disabled. The default is $false. To change the state of an existing signer rule, use the cmdlets Enable-DkimSignerRule and Disable-DkimSignerRule.
FromAddressFilter | Optional | String | Specifies the From address filter. Wildcard and regular expressions are supported. If you want to disable this filter, specify the empty string as value. If this parameter is not specified, the default value is *@<domain>, where <domain> is the domain of the domain key being used.
HeaderFieldFilter | Optional | String | Specifies the header field filter. If this parameter is specified, the value must be either the empty string or it must be in the format <name>:<value>, where <name> is the filter expression for the header field name and <value> is the filter expression for the header field value. Wildcard and regular expressions are supported for both components. The default value is the empty string, which indicates that this filter is disabled.
Priority | Optional | Int32 | Specifies the priority of the signer rule. The priority specifies the order in which the signer rules are processed. Rules with a lower priority value are processed first. If you specify the priority of the signer rule, the new signer rule is inserted at the corresponding location in the signer rule list. If you do not specify the priority of the signer rule, the new signer rule is added to the end of the signer rule list. If specified, the value of this parameter must be greater than or equal to 0, and not exceed n, where n is the total number of signer rules.
RemoveExistingSignatures | Optional | Boolean | Specifies if existing signatures should be removed from messages. The default value is $false.
SignMessages | Optional | Boolean | Specifies whether messages matching the conditions of this signer rule will be signed by using the settings of the specified domain key and signer policy or not. If you specify $true, matching messages will be signed. If you specify $false, matching messages will not be signed. The default value is $true.
StopProcessingRules | Optional | Boolean | Specifies whether signer rules with higher priority values will be processed or not in case a message matches the conditions of this signer rule. If you specify $true, signer rule processing will stop for a matching message. If you specify $false, signer rule processing will continue for a matching message. The default is $true.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The New-DkimSignerRule cmdlet creates a new signer rule in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example creates a new signer rule with the name "Rule for dkimx.com" for message signing using the specified domain key and signer policy.
New-DkimSignerRule -Name "Rule for dkimx.com" -DomainKey "dkimx.com:dec2011" -Policy "Default with RSASHA1"


Remove-DkimDomainKey

Deletes a domain key.

Syntax

Remove-DkimDomainKey [-Name] <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-DkimDomainKey -InputObject <DkimDomainKey> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimDomainKey | Specifies a DkimDomainKey object that represents the domain key to be removed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimDomainKey command. You can also pipe a DkimDomainKey object to Remove-DkimDomainKey.
Name | Required | String | Specifies the name of the domain key to be removed. Wildcards are not permitted. You can also pipe a domain key name to Remove-DkimDomainKey.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Remove-DkimDomainKey cmdlet deletes the specified domain key from the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example deletes the domain key with the name "dkimx.com:dec2011".
Remove-DkimDomainKey -Name "dkimx.com:dec2011"


Remove-DkimSignerPolicy

Deletes a signer policy.

Syntax

Remove-DkimSignerPolicy [-Name] <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-DkimSignerPolicy -InputObject <DkimSignerPolicy> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerPolicy | Specifies a DkimSignerPolicy object that represents the signer policy to be removed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerPolicy command. You can also pipe a DkimSignerPolicy object to Remove-DkimSignerPolicy.
Name | Required | String | Specifies the name of the signer policy to be removed. Wildcards are not permitted. You can also pipe a signer policy name to Remove-DkimSignerPolicy.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Remove-DkimSignerPolicy cmdlet deletes the specified signer policy from the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example deletes the signer policy with the name "Default with RSASHA1".
Remove-DkimSignerPolicy -Name "Default with RSASHA1"


Remove-DkimSignerRule

Deletes a signer rule.

Syntax

Remove-DkimSignerRule [-Name] <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-DkimSignerRule -InputObject <DkimSignerRule> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerRule | Specifies a DkimSignerRule object that represents the signer rule to be removed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerRule command. You can also pipe a DkimSignerRule object to Remove-DkimSignerRule.
Name | Required | String | Specifies the name of the signer rule to be removed. Wildcards are not permitted. You can also pipe a signer rule name to Remove-DkimSignerRule.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Remove-DkimSignerRule cmdlet deletes the specified signer rule from the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example deletes the signer rule with the name "Rule for dkimx.com".
Remove-DkimSignerRulePolicy -Name "Rule for dkimx.com"


Rename-DkimSignerPolicy

Renames a signer policy.

Syntax

Rename-DkimSignerPolicy [-Name] <String> -NewName <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Rename-DkimSignerPolicy -InputObject <DkimSignerPolicy> -NewName <String> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerPolicy | Specifies a DkimSignerPolicy object that represents the signer policy to be renamed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerPolicy command. You can also pipe a DkimSignerPolicy object to Rename-DkimSignerPolicy.
Name | Required | String | Specifies the name of the signer policy to be renamed. Wildcards are not permitted. You can also pipe a signer policy name to Rename-DkimSignerPolicy.
NewName | Required | String | Specifies the new name of the signer policy. Because the name of a signer policy must be unique, you cannot specify the name of an existing signer policy.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Rename-DkimSignerPolicy cmdlet renames the specified signer policy in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This examples renames a signer policy.
Rename-DkimSignerPolicy -Name "Default with RSASHA1" -NewName "Default Settings with Algorithm RSASHA1"


Rename-DkimSignerRule

Renames a signer rule.

Syntax

Rename-DkimSignerRule [-Name] <String> -NewName <String> [-Confirm] [-WhatIf] [<CommonParameters>]
Rename-DkimSignerRule -InputObject <DkimSignerRule> -NewName <String> [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerRule | Specifies a DkimSignerRule object that represents the signer rule to be renamed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerRule command. You can also pipe a DkimSignerRule object to Rename-DkimSignerRule.
Name | Required | String | Specifies the name of the signer rule to be renamed. Wildcards are not permitted. You can also pipe a signer rule name to Rename-DkimSignerRule.
NewName | Required | String | Specifies the new name of the signer rule. Because the name of a signer rule must be unique, you cannot specify the name of an existing signer rule.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Rename-DkimSignerRule cmdlet renames the specified signer rule in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This examples renames a signer rule.
Rename-DkimSignerRule -Name "Rule for dkimx.com" -NewName "Rule for domain dkimx.com"


Reset-DkimConfig

Discards changes to the cached configuration.

Syntax

Reset-DkimConfig [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Reset-DkimConfig cmdlet discards changes to the cached configuration by reloading its data from the stored configuration.

Examples

EXAMPLE 1

This example discards changes to the cached configuration by reloading the cached configuration from the stored configuration without prompting for confirmation.
Reset-DkimConfig -Confirm:$false


Save-DkimConfig

Saves the cached configuration.

Syntax

Save-DkimConfig [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Save-DkimConfig cmdlet writes the cached configuration to the stored configuration. Configuration changes by cmdlets are initially stored in the cached configuration. To make configuration changes durable and visible to the transport agent, the cached configuration must be written to the stored configuration by using this cmdlet.

Examples

EXAMPLE 1

This example writes the cached configuration to the stored configuration without prompting for confirmation.
Save-DkimConfig -Confirm:$false


Set-DkimDomainKey

Changes properties of an existing domain key.

Syntax

Set-DkimDomainKey [-Name] <String> [-Confirm] [-Description <String>] [-WhatIf] [<CommonParameters>]
Set-DkimDomainKey -InputObject <DkimDomainKey> [-Confirm] [-Description <String>] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimDomainKey | Specifies a DkimDomainKey object that represents the domain key to be changed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimDomainKey command. You can also pipe a DkimDomainKey object to Set-DkimDomainKey.
Name | Required | String | Specifies the name of the domain key to be changed. Wildcards are not permitted. You can also pipe a domain key name to Set-DkimDomainKey.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Description | Optional | String | Specifies a new description for the domain key.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Set-DkimDomainKey cmdlet changes properties of the specified domain key in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example sets a new description for the domain key with the name "dkimx.com:dec2011".
Set-DkimDomainKey -Name "dkimx.com:dec2011" -Description "Domain key for domain dkimx.com and selector dec2011"


Set-DkimServer

Changes properties of the DKIM server.

Syntax

Set-DkimServer [-AdministrativeContacts <String[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
AdministrativeContacts | Optional | String[] | Specifies an array of SMTP addresses of administrative contacts, which will be notified by e-mail of critical errors and license management events.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Set-DkimServer cmdlet changes properties of the DKIMserver in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example sets a new list of administrative contact e-mail addresses.
Set-DkimServer -AdministrativeContacts "admin@dkimx.com", "support@dkimx.com"


Set-DkimSigner

Changes properties of the DKIM signer.

Syntax

Set-DkimSigner [-Confirm] [-CustomLocalDomains <String[]>] [-ExcludedRecipients <String[]>] [-IncludeMxsAcceptedDomainsInLocalDomains [<Boolean>]] [-MaxHeaderSize <ByteSize>] [-MaxMessageSize <ByteSize>] [-TreatNullEnvelopeSenderAddressAsLocal [<Boolean>]] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
CustomLocalDomains | Optional | String[] | Specifies an array of e-mail domains which should be treated as local domains.
ExcludedRecipients | Optional | String[] | Specifies an array of SMTP addresses of excluded recipients. Wildcard and regular expressions are supported. When at least one recipient of a message matches an excluded recipient, the message will not be processed by the signer.
IncludeMxsAcceptedDomainsInLocalDomains | Optional | Boolean | Specifies if accepted domains (Authoritative and Internal Relay only) from MS Exchange will be treated as local domains.
MaxHeaderSize | Optional |  | Specifies the maximum size of the SMTP header of messages that will be processed by the signer. If the size of the SMTP header of a message exceeds this value, the message will not be processed by the signer. When you enter a value, qualify the value with one of the following units: - B (bytes) - KB (kilobytes) - MB (megabytes) - GB (gigabytes) - TB (terabytes) - PB (petabytes) - EB (exabytes) Unqualified values are treated as bytes. If you specify a value of 0 bytes, no limit is imposed on the size of the SMTP header of messages that will be processed by the signer.
MaxMessageSize | Optional | ByteSize | Specifies the maximum size of messages that will be processed by the signer. If the size of a message exceeds this value, the message will not be processed by the signer. When you enter a value, qualify the value with one of the following units: - B (bytes) - KB (kilobytes) - MB (megabytes) - GB (gigabytes) - TB (terabytes) - PB (petabytes) - EB (exabytes) Unqualified values are treated as bytes. If you specify a value of 0 bytes, no limit is imposed on the size of messages that will be processed by the signer.
TreatNullEnvelopeSenderAddressAsLocal | Optional | Boolean | Specifies if the NULL envelope sender address should be treated as a local envelope sender address.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Set-DkimSigner cmdlet changes properties of the DKIM signer in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example sets a new maximum message size of 10MB.
Set-DkimSigner -MaxMessageSize 10MB


Set-DkimSignerPolicy

Changes properties of an existing signer policy.

Syntax

Set-DkimSignerPolicy [-Name] <String> [-AddProductIdHeaderField [<Boolean>]] [-Algorithm <DkimAlgorithm>] [-AlwaysIncludeCanonicalization [<Boolean>]] [-AlwaysIncludeIdentity [<Boolean>]] [-AlwaysIncludeQueryMethods [<Boolean>]] [-BodyCanonicalization <DkimCanonicalization>] [-BodyLength <Object>] [-Confirm] [-Description <String>] [-Expiration <Object>] [-HeaderCanonicalization <DkimCanonicalization>] [-HeaderFields <String[]>] [-Identity <String>] [-IncludeCopiedHeaderFields [<Boolean>]] [-IncludeTimestamp [<Boolean>]] [-QueryMethods <DkimQueryMethods>] [-WhatIf] [<CommonParameters>]
Set-DkimSignerPolicy -InputObject <DkimSignerPolicy> [-AddProductIdHeaderField [<Boolean>]] [-Algorithm <DkimAlgorithm>] [-AlwaysIncludeCanonicalization [<Boolean>]] [-AlwaysIncludeIdentity [<Boolean>]] [-AlwaysIncludeQueryMethods [<Boolean>]] [-BodyCanonicalization <DkimCanonicalization>] [-BodyLength <Object>] [-Confirm] [-Description <String>] [-Expiration <Object>] [-HeaderCanonicalization <DkimCanonicalization>] [-HeaderFields <String[]>] [-Identity <String>] [-IncludeCopiedHeaderFields [<Boolean>]] [-IncludeTimestamp [<Boolean>]] [-QueryMethods <DkimQueryMethods>] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerPolicy | Specifies a DkimSignerPolicy object that represents the signer policy to be changed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerPolicy command. You can also pipe a DkimSignerPolicy object to Set-DkimSignerPolicy.
Name | Required | String | Specifies the name of the signer policy to be changed. Wildcards are not permitted. You can also pipe a signer policy name to Set-DkimSignerPolicy.
AddProductIdHeaderField | Optional | Boolean | Specifies if a product-ID header field will be added to messages.
Algorithm | Optional | DkimAlgorithm | Specifies the algorithm to be used for generating the signature. Valid values are: - RsaSha1 - RsaSha256
AlwaysIncludeCanonicalization | Optional | Boolean | Specifies if the message canonicalization (c=) tag will be included in the signature even when both the header canonicalization and the body canonicalization have the default value of Simple.
AlwaysIncludeIdentity | Optional | Boolean | Specifies if the identity (i=) tag will be included in the signature even when identity has the default value of @<SigningDomain>.
AlwaysIncludeQueryMethods | Optional | Boolean | Specifies if the query methods (q=) tag will be included in the signature even when query methods has the default value of DnsTxt.
BodyCanonicalization | Optional | DkimCanonicalization | Specifies the canonicalization method for the body of messages. Valid values are: - Simple - Relaxed
BodyLength | Optional | Object | Specifies how many bytes of the body of messages will be signed and if the body length count (l=) tag will be added to the signature. Valid values are: - "Exclude": The entire body will be signed. The body length count (l=) tag will not be added to the signature. - "Include": The entire body will be signed. The body length count (l=) tag will be added to the signature. - Int32: The specified number of body bytes will be signed. The specified number must be 0 or greater. The body length count (l=) tag will be added to the signature.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Description | Optional | String | Specifies a new description for the signer policy.
Expiration | Optional | Object | Specifies if the expiration (x=) tag will be added to the signature and if yes, which value the expiration (x=) tag will have. Valid values are: - "None": The expiration (x=) tag will not be added to the signature. - DateTime: The expiration (x=) tag will be added to the signature having the value of the specified DateTime object. - TimeSpan: The expiration (x=) tag will be added to the signature having the value of the specified TimeSpan object added to the signing time.
HeaderCanonicalization | Optional | DkimCanonicalization | Specifies the canonicalization method for the header of messages. Valid values are: - Simple - Relaxed
HeaderFields | Optional | String[] | Specifies an array of header fields to be signed. Each entry consists of the header field name, followed by a colon and the signing mode. The signer mode can be: - SignIfExists - SignAlways
Identity | Optional | String | Specifies the template for generating the identity (i=) tag of the signature. The value must end with <SigningDomain>, which is a placeholder for the domain of the domain key being used. Between the character @ and <SigningDomain> one or more domain labels can be specified. Before the character @ you can specify <FromAddressLocalPart>, which is a placeholder for the local-part of the From address, or a static local-part or the empty string.
IncludeCopiedHeaderFields | Optional | Boolean | Specifies if copies of signed header fields will be included in the signature (z= tag). Enable this feature only for diagnostic use.
IncludeTimestamp | Optional | Boolean | Specifies if the timestamp (t=) tag will be included in the signature.
QueryMethods | Optional | DkimQueryMethods | Specifies the query methods used to retrieve the public key. Currently only one method is defined: - DnsTxt
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Set-DkimSignerPolicy cmdlet changes properties of the specified signer policy in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example sets simple header canonicalization for the signer policy with the name "Default".
Set-DkimSignerPolicy -Name "Default" -HeaderCanonicalization Simple


Set-DkimSignerRule

Changes properties of an existing signer policy.

Syntax

Set-DkimSignerRule [-Name] <String> [-Confirm] [-Description <String>] [-DomainKey <String>] [-FromAddressFilter <String>] [-HeaderFieldFilter <String>] [-Policy <String>] [-Priority <Int32>] [-RemoveExistingSignatures [<Boolean>]] [-SignMessages [<Boolean>]] [-StopProcessingRules [<Boolean>]] [-WhatIf] [<CommonParameters>]
Set-DkimSignerRule -InputObject <DkimSignerRule> [-Confirm] [-Description <String>] [-DomainKey <String>] [-FromAddressFilter <String>] [-HeaderFieldFilter <String>] [-Policy <String>] [-Priority <Int32>] [-RemoveExistingSignatures [<Boolean>]] [-SignMessages [<Boolean>]] [-StopProcessingRules [<Boolean>]] [-WhatIf] [<CommonParameters>]

Parameters

Parameter | Required | Type | Description
InputObject | Required | DkimSignerRule | Specifies a DkimSignerRule object that represents the signer rule to be renamed. Enter a variable that contains the object, or type a command or expression that gets the object, such as a Get-DkimSignerRule command. You can also pipe a DkimSignerRule object to Set-DkimSignerRule.
Name | Required | String | Specifies the name of the signer rule to be changed. Wildcards are not permitted. You can also pipe a signer rule name to Set-DkimSignerRule.
Confirm | Optional | SwitchParameter | Prompts you for confirmation before executing the command.
Description | Optional | String | Specifies a new description for the signer rule.
DomainKey | Optional | String | Specifies the name of an existing domain key, whose RSA key is used when a matching message is signed
FromAddressFilter | Optional | String | Specifies the From address filter. Wildcard and regular expressions are supported. If you want to disable this filter, specify the empty string as value.
HeaderFieldFilter | Optional | String | Specifies the header field filter. If this parameter is specified, the value must be either the empty string or it must be in the format <name>:<value>, where <name> is the filter expression for the header field name and <value> is the filter expression for the header field value. Wildcard and regular expressions are supported for both components. If you want to disable this condition, specify the empty string as value.
Policy | Optional | String | Specifies the name of an existing signer policy, whose settings are used when a matching message is signed.
Priority | Optional | Int32 | Specifies the priority of the signer rule. The priority specifies the order in which the signer rules are processed. Rules with a lower priority value are processed first. If you modify the priority of the signer rule, the position of the rule in the signer rule list changes to match the priority that you specified. The value of this parameter must be greater than or equal to 0, and not exceed n-1, where n is the total number of signer rules.
RemoveExistingSignatures | Optional | Boolean | Specifies if existing signatures should be removed from messages.
SignMessages | Optional | Boolean | Specifies whether messages matching the conditions of this signer rule will be signed by using the settings of the specified domain key and signer policy or not. If you specify $true, matching messages will be signed. If you specify $false, matching messages will not be signed.
StopProcessingRules | Optional | Boolean | Specifies whether signer rules with higher priority will be processed in case a message matches the conditions of this signer rule. If you specify $true, signer rule processing will stop for a matching message. If you specify $false, signer rule processing will continue for a matching message.
WhatIf | Optional | SwitchParameter | Describes what would happen if you executed the command without actually executing the command.

Detailed Description

The Set-DkimSignerRule cmdlet changes properties of the specified signer rule in the cached configuration. To make changes to the configuration durable, the cached configuration must be written to the stored configuration by using the Save-DkimConfig cmdlet.

Examples

EXAMPLE 1

This example sets a new domain key for the signer rule with the name "Rule for dkimx.com"
Set-DkimSignerRule -Name "Rule for dkimx.com" -DomainKey "dkimx.com:mar2012"


Match Expressions

The filter expressions which can be specified as conditions of a signer rule (From address, header field) or as excluded recipients on the signer object are either wildcard expressions or regular expressions. If a filter expressions starts and ends with the character '/', for example: /^test.*@.*\.mydomain.com$/, it is interpreted as a regular expression, otherwise it is interpreted as a wildcard expression.

This section contains:

  • Wildcard Expressions: Description of wildcard expressions.
  • Regular Expressions: Description of regular expressions.


Wildcard Expressions

DkimX use the same syntax for wildcard expressions as is being implemented in PowerShell:

  • The * wildcard will match zero or more characters.
  • The ? wildcard will match a single character.
  • [m-n] matches a range of characters from m to n, so test[0-3] will match test0, test1, test2, test3.
  • [abc] matches a set of characters a, b, c, so [flmt]ake will match fake, lake, make, take.
  • To escape one of the reserved characters (*, ?, [, ]), the character must be prefixed with the backtick character (`).

Note Case-insensitive matching is performed for wildcard expressions.


Regular Expressions

The regular expression engine used is the one provided by .NET Framework 2.0.

To differentiate a regular expression from a wildcard expression when being used as a filter expression, the regular expression must start and end with the character '/', for example: /^test.*@.*\.mydomain.com$/.

Note Case-sensitive matching is performed by default for regular expressions. You can override this behavior in the expression itself.

For in-depth information about regular expressions, we recommend Jeffrey E. Friedl's excellent book Mastering Regular Expressions, 3rd Edition, Jeffrey E. F. Friedl, O'Reilly and Associates, 2006.


Performance Counters

The operation of the DkimX transport agent can be monitored by using the following provided performance object:

DkimX Signer

The DkimX Signer performance object exposes the following performance counters:

Counter Name | Description
Messages Processed Total | Messages Processed Total is the total number of messages processed by the DkimX Signer since startup of the service Microsoft Exchange Transport.
Messages Processed/sec | Messages Processed/sec is the number of messages processed by the DkimX Signer per second.
Messages Ignored Total | Messages Ignored Total is the total number of messages ignored by the DkimX Signer since startup of the service Microsoft Exchange Transport.
Messages Ignored/sec | Messages Ignored/sec is the number of messages ignored by the DkimX Signer per second.
Messages Signed Total | Messages Signed Total is the total number of messages signed by the DkimX Signer since startup of the service Microsoft Exchange Transport.
Messages Signed/sec | Messages Signed/sec is the number of messages signed by the DkimX Signer per second.
Message Processing Operations Current | Message Processing Operations Current is the number of messages which are currently processed.
Average Message Processing Time (sec) | Average Message Processing Time (sec) is the average processing time per message in seconds.


Licenses and Software Maintenance

Evaluation License

DkimX ships with an evaluation license, which expires 30 days after installation. The DkimX Transport Agent will be disabled when the evaluation license expires. According to the End-User License Agreement ("EULA"), on expiration of the evaluation license, you must purchase one or more server licenses or an enterprise license by paying the required license fees, or, as an alternative, uninstall the software from all servers on which it was installed and where the evaluation license has expired.

Server License

A server license is a perpetual license to use DkimX on one server.

Enterprise License

An enterprise is a perpetual license to use DkimX on an unlimited number of servers.

Software Maintenance

Software Maintenance means the right to download, install and use software updates and software upgrades (if any) released during a maintenance period.

Each server and enterprise license is associated with a software maintenance period.

A newly purchased server or enterprise license has an associated Software Maintenance period of one or two years commencing on the date of license purchase.

Before or after expiration of the software maintenance period you may renew software maintenance for one or two years. Subsequent renewal periods of software maintenance commence upon the expiration of the prior software maintenance period regardless of when the new one is purchased. Renewal of software maintenance is only possible if the expiration date of the new period lies in the future. This means that if the software maintenance period expired more than two years ago, renewal of software maintenance is not possible.

Note For more information about prices for licenses and software maintenance renewals, please go to http://www.netal.com/DkimX.htm.

License Certificate File

For each server or enterprise license purchased, you will receive a license certificate file. To activate the new license, copy the license certificate file to the directory <InstallDir>\Data\Licenses.

Also, when you renew software maintenance for a license, you will receive a new license certificate file, which you has then to apply to your product installation by copying it to the directory <InstallDir>\Data\Licenses.

A license certificate files has an arbitrary name with the extension .lic and contains XML-formatted data about the license and the assoicated software maintenance period. A license certificate file must be located in the directory <InstallDir>\Data\Licenses to be recognized by DkimX.

The properties of the license certificate file can be viewed using the License General Property Page.

IMPORTANT Because the content of a license certificate file is protected by a digital signature, never change the content of a license certificate file!


End-User License Agreement

DkimX End-User License Agreement

Important – Read carefully: This End-User License Agreement (“EULA”) is a legal agreement between you (either an individual or a single entity) and Franz Krainer for the software product DkimX. By installing, copying, or otherwise using this software, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, do not install or use this software.

1 Definitions

1.1 “EULA” means this End User License Agreement.

1.2 “License Certificate” means a cryptographically secured file which contains information about a product license and, depending on the license type, optionally contains information about a Software Maintenance period.

1.3 “Licensee” means you or the single entity (if any) on whose behalf you are taking the EULA (also referred to as “You”).

1.4 “Licensor” means the licensor of the Software Product, who is Franz Krainer, Kettenbrueckengasse 20/25, 1040 Vienna, Austria.

1.5 “Server” means a physical or virtual computer which fulfills the requirements for installing the Software Product.

1.6 “Software Maintenance” means the right to download, install and use software updates and software upgrades (if any) released during a maintenance period.

1.7 “Software Product” means the software product DkimX and all associated media, printed materials and may include online or electronic documentation.

1.8 “Trial Period” means a period of thirty (30) days after installation for evaluating the Software Product.

2 License Grants

2.1 Evaluation License. You may download, install and then use the Software Product for free during the Trial Period. During the Trial Period, Licensor grants You a limited, non-exclusive, non-transferable, non-renewable license to copy and use the Software Product for evaluation purposes only. The evaluation license will expire at the end of the Trial Period. On expiration of the evaluation license, You must purchase one or more server licenses or an enterprise license by paying the required license fees, or, as an alternative, uninstall the Software Product from all Servers on which it was installed and where the evaluation license has expired.

2.2 Server License. Upon payment of the license fee for a perpetual server license, Licensor grants You a limited, non-exclusive, non-transferable license to use the Software Product on one Server. A server license includes one year of Software Maintenance. Licensor will provide You with a License Certificate which has to be applied to the installation of the Software Product on the Server to activate the server license.

2.3 Enterprise License. Upon payment of the license fee for a perpetual enterprise license, Licensor grants You a limited, non-exclusive, non-transferable license to use the Software Product on an unlimited number of Servers. An enterprise license includes one year of Software Maintenance. Licensor will provide You with a License Certificate which has to be applied to all installations of the Software Product on the Servers to activate the enterprise license.

3 Software Maintenance

3.1 Each server and enterprise license is associated with a Software Maintenance period.

3.2 A newly purchased server or enterprise license has an associated Software Maintenance period of one or two years commencing on the date of license purchase.

3.3 Before or after expiration of the Software Maintenance period You may renew Software Maintenance for one or two years. Subsequent renewal periods of the Software Maintenance commence upon the expiration of the prior Software Maintenance period regardless of when the new one is purchased. Renewal of Software Maintenance is only possible if the expiration date of the new period lies in the future. This means that if the Software Maintenance period expired more than two years ago, renewal of Software Maintenance is not possible.

4 License Restrictions

4.1 You shall undertake any necessary steps to protect License Certificates against unauthorized use.

4.2 You may not alter, merge, modify, adapt or translate the Software Product, or decompile, reverse engineer, disassemble, or otherwise reduce the Software Product to a human-perceivable form, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.

4.3 You may not sell, rent, lease, sub license, transfer, resell for profit or otherwise distribute the Software Product or any part thereof.

4.4 You may not modify the Software Product or create derivative works based upon the Software Product.

4.5 You may not remove or obscure any copyright and trademark notices relating to the Software Product.

5 Termination

5.1 Without prejudice to any other rights, Licensor may terminate this EULA if You fail to comply with the terms and conditions of this EULA. In such event, You must destroy all readily usable copies of the Software Product and all of its component parts.

6 Copyright

6.1 The Software Product is licensed, not sold. Title and copyrights in and to the Software Product (including any images, applets, photographs, animations, video, audio, music, and text incorporated into the Software Product), accompanying printed materials, and any copies You are permitted to make herein are owned by Licensor or his suppliers and are protected by Austrian copyright laws and international treaty provisions.

7 Disclaimer of Warranty

7.1 This Software Product is provided by Licensor “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, are disclaimed.

7.2 In no event shall Licensor or its suppliers be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, savings, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this Software Product, even if advised of the possibility of such damage. Because some states do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to You.

© Franz Krainer 2011-2017. All Rights Reserved. Legal Notices.

2017-04-05