To use cryptography mailets, the required Bouncy Castle libraries must be installed in james/lib . It is recommended that the correct versions for the JVM are used.
To use the mailets, the package org.apache.james.mailet.crypto.mailet must be available. To use the matchers, org.apache.james.mailet.crypto.matcher must be. For example:
<mailetpackages> ... <mailetpackage>org.apache.james.mailet.crypto.mailet</mailetpackage> </mailetpackages> <matcherpackages> ... <matcherpackage>org.apache.james.mailet.crypto.matcher</matcherpackage> </matcherpackages>
Example SMIME mailet configurations:
<mailet match="IsSMIMEEncrypted" class="SMIMEDecrypt"> <keyStoreType>pkcs12</keyStoreType> <keyStoreFileName>c:/path.pfx</keyStoreFileName> <keyStorePassword>myKeyStorePass</keyStorePassword> <keyAlias>myKeyAlias</keyAlias> <keyAliasPassword>myKeyPass</keyAliasPassword> </mailet> <mailet match="IsSMIMESigned" class="SMIMECheckSignature"> <keyStoreType>pkcs12</keyStoreType> <keyStoreFileName>c:/path.pfx</keyStoreFileName> <keyStorePassword> myKeyStorePass </keyStorePassword> <strip>false</strip> <onlyTrusted>true</onlyTrusted> </mailet>
<mailet match="HasMailAttribute=org.apache.james.SMIMECheckSignature" class="ToProcessor"> <processor>transport</processor> </mailet>
Signing example: Add a server-side signature to all mail.
<mailet match="HasMailAttribute=org.apache.james.SMIMECheckSignature" class="SetMimeHeader"> <name>X-WasSigned</name> <value>true</value> </mailet> <mailet match="All" class="SMIMESign" onMailetException="ignore"> <keyStoreType>jks</keyStoreType> <keyStoreFileName>path.keystore</keyStoreFileName> <keyStorePassword>myKeyStorePass</keyStorePassword> <keyAlias>myKeyAlias</keyAlias> <keyAliasPassword>myKeyPass</keyAliasPassword> <signerName>XXX Trusted Server</signerName> <rebuildFrom>true</rebuildFrom> <postmasterSigns>true</postmasterSigns> <debug>true</debug> </mailet>