Mailets
James provides a number of implemented Mailets for use by James administrators in their
configurations. These are primarily mailets that members of the James developer or user
communities have found useful in their own configurations. A description of how to configure
Mailets and use them in the James SpoolManager can be found here.
AddFooter
Description: This mailet adds a text footer to the message.
Parameters:
- text (required) - the text that will be added as a footer to the message.
AddHabeasWarrantMark
Description: This mailet adds a Habeas warrant mark (see http://habeas.com for details) to the message.
Parameters: None.
AddHeader
Description: This mailet is deprecated .Please use SetMimeHeader .
AvalonListserv
Provides basic list server functionality. Implements basic filters for emails sent to the list,
including restriction of senders to members, diallowing attachments in list messages, and subject line
processing
Parameters:
- repositoryName (required) - the name of the user repository that contains the users
for this list.
- membersonly (optional) - whether only members of the list can send messages to this
list. Defaults to false.
- attachmentsallowed (optional) - whether attachments are allowed in messages sent to this
list. Defaults to true.
- replytolist (optional) - whether the reply-to address for all messages sent to this
list is set to the list address. Defaults to true.
- subjectprefix (optional) - a String value. If set, this value is prepended to the subject
line of all messages sent to the list.
- autobracket (optional) - a boolean value. If a subjectprefix is set, this value determines
whether the prefix is bracketed before being prepended to the subject line. Defaults to true.
AvalonListservManager
Processes list management commands of the form <list-name>-on@<host> and
<list-name>-off@<host> where <list-name> and lt;host> are arbitrary. Note
that this should be used in tandem with a CommandForListserv matcher to ensure that only commands
intended for a specific list are processed.
Parameters:
- repositoryName (required) - the name of the user repository that contains the users
for this list.
BayesianAnalysis
Description: Spam detection mailet using bayesian analysis techniques.
Parameters:
- repositoryPath (required) - The repositoryPath which is used.
- headerName - The HeaderName which get adds to holds the Probalitity. Default is X-MessageIsSpamProbability.
- ignoreLocalSender - Set to true if you want to ignore messages from local senders. By local sender we mean a return-path
with a local server part (server listed in <servernames> in config.xml). Default is false.
- maxSize - Set this to the maximum message size (in bytes) after analysis will be skipped. Default is 100000.
BayesianAnalysisFeeder
Description: Feeds ham OR spam messages to train the BayesianAnalysis mailet.
Parameters:
- repositoryPath (required) - The repositoryPath which is used.
- feedType (required) - The type of the message which is used to feed the mailet. Allowed values are spam and ham.
- maxSize - Set this to the maximum message size (in bytes) after analysis will be skipped. Default is 100000.
Bounce
Description: Generates a response to the reverse-path address.
Parameters:
- sender - The senderAddress which will be used for sending the bounce. Possible values: address, postmaster , sender,
unaltered. Default postmaster.
- attachError - Attach error. Default is false.
- message - Set the message which get included in the bounce.
- prefix - Optional subject prefix prepended to the original message.
- inline - Specify which mailpart will be included in the email body. Possible values: unaltered, heads, body , all,
"none". Default "none".
- attachment - Specify which mailpart will be attached to the email. Possible values: none, heads, body, all,
message. Default message.
- passThrough - If set to false the email will not processed after the bounce. Possible values: true, false.
Default true.
- fakeDomainCheck - If set to false true will check if the sender domain is valid. Possible values: true, false.
Default true.
- debug - If set true you can enable debugging. Possible values: true, false.
Default false.
ClamAVScan
Description: Does an antivirus scan check using a ClamAV daemon (CLAMD).
Parameters:
- host - The host name of the server where CLAMD runs. The default is localhost
- port - The port on which CLAMD listens. The default is 3310.
- maxPings - The maximum number of connection retries during startup. If the value is 0 no startup
test will be done.
- pingIntervalMillis (required) - The interval (in milliseconds) between each connection retry during startup.
The default is 30000 (30 seconds)
- streamBufferSize - the BufferedOutputStream buffer size to use writing to the stream connection. The
default is 8192.
- debug - If set true you can enable debugging. Possible values: true, false.
Default false.
CommandListservFooter
Description: CommandListservFooter is based on the AddFooter mailet. It is used by the CommandListservProcessor to inject a footer into mailing list.
Parameters: None.
CommandListservManager
Description: CommandListservManager is the default implementation of ICommandListservManager.
It loads all the configured IListServCommands and delegates to them at runtime.
It isn't responsible for procesing messages sent to the main mailing list, but is responsible for
individual commands sent by users, such as: info, subscribe, etc...
Requests sent to the CommandListservManager take the form of:
<listName>-<commandName>@domain
If the command isn't recognized an error will be sent.
The configuration for this mailet sould be in the 'root' processor block.
Parameters:
- listName - The listname
- displayName - The full listname
- listOwner - An emailaddress which will be used as owneraddress.
- repositoryName - the repository name
- listDomain - The domain
Example configuration:
<mailet match="CommandListservMatcher=announce@localhost" class="CommandListservManager">
<listName>announce</listName>
<displayName>Announce mailing list</displayName>
<listOwner>owner@localhost</listOwner>
<repositoryName>list-announce</repositoryName>
<listDomain>localhost</listDomain>
<commandpackages>
<commandpackage>org.apache.james.transport.mailets.listservcommands</commandpackage>
</commandpackages>
<commands>
<command name="subscribe" class="Subscribe"/>
<command name="subscribe-confirm" class="SubscribeConfirm"/>
<command name="unsubscribe" class="UnSubscribe"/>
<command name="unsubscribe-confirm" class="UnSubscribeConfirm"/>
<command name="error" class="ErrorCommand"/>
<command name="owner" class="Owner"/>
<command name="info" class="Info"/>
</commands>
</mailet>
DSNBounce
Description: Generates a Delivery Status Notification (DSN). Note that this is different than a mail-client's
reply, which would use the Reply-To or From header.Bounced messages are attached in their entirety (headers and
content) and the resulting MIME part type is "message/rfc822".
The reverse-path and the Return-Path header of the response is set to
null (
<>),
meaning that no reply should be sent.
A sender of the notification message can optionally be specified.
If one is not specified, the postmaster's address will be used.
Parameters:
- sender - An address, postmaster,sender or unaltered. Default is postmaster
- prefix - Optional subject prefix prepended to the original message.
- attachment - Values are message, heads or none. Default is message.
test will be done.
- messageString - the message sent in the bounce, the first occurrence of the pattern [machine] is replaced with the name of the executing machine, default=Hi. This is the James mail server at [machine] ....
- passThrough (optional) - a boolean value (true/false) indicating whether
processing should continue on the message is on. If false, the original message is GHOSTed. Defaults to false.
- debug - If set true you can enable debugging. Possible values: true, false.
Default false.
Forward
Description: This mailet forwards the message to a set of recipients.
Parameters:
- forwardto (required) - a comma delimited list of email addresses.
FromRepository
Description: This mailet ee-spools mail found in the specified Repository.
Parameters:
- repositoryPath (required) - The repositoryPath which is used.
- processor (required) - The target processor to move the mails to.
- delete - If set to true the mails get deleted after re-spooling. Default is false.
ICommandListservManager
Description: ICommandListservManager is the interface that describes the functionality of any command based list serv managers.
Parameters: None.
JDBCAlias
Description: This mailet does alias translation for email addresses stored in a database table.
Parameters:
- mappings (required) - a URL of the form db://<data-source>/<table>, where
<table> is the table in the database containing the alias info and <data-source> is the name
of the data-source in config.xml that is to be used.
- source_column (required) - the column containing the aliases.
- target_column (required) - the column containing the alias targets.
JDBCVirtualUserTable
Description: This mailet does complex alias translation for email addresses stored in a database table.
Parameters:
- table (required) - the URL describing the database table. This URL has the form
db://<data-source>/<table> where <data-source> and <table> are the names of
the data-source as defined in config.xml and the table in the database.
- sqlquery (optional) - the text of the SQL query used by the mailet to do user
lookup. The default is "select VirtualUserTable.target_address from VirtualUserTable, VirtualUserTable as VUTDomains where (VirtualUserTable.user like ? or VirtualUserTable.user like '\\%') and (VirtualUserTable.domain like ? or (VirtualUserTable.domain like '\\%' and VUTDomains.domain like ?)) order by concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc limit 1"
LocalDelivery
Description: This mailet delivers messages to local mailboxes.
Parameters: None.
LogMessage
Description: Logs Message Headers and/or Body.
Parameters:
- passThrough (optional) - If the "passThrough" in confs is true the mail will be left untouched in
the pipe. If false will be destroyed. Default is true.
- headers (optional) - If set to true the headers get logged. Default is true"
- body (optional) - If set to true the body get logged. Default is true.
- bodyMax (optional) - The max length wich should be logged. Default is log all.
- comment (optional) - The comment which should be logged Default is none.
NotifyPostmaster
Description: This mailet forwards the message as an attachment to the James postmaster.
Parameters:
- sendingAddress (optional) - the address from which the forwarded email will be
sent. Defaults to the postmaster address.
- notice (optional) - the text message that will accompany the forwarded message. Defaults
to "We were unable to deliver the attached message because of an error in the mail server."
- attachStackTrace (optional) - whether an error stack trace is attached to the forwarded message.
NotifySender
Description: This mailet forwards the message as an attachment to the original sender.
Parameters:
- sendingAddress (optional) - the address from which the forwarded email will be
sent. Defaults to the postmaster address.
- notice (optional) - the text message that will accompany the forwarded message. Defaults
to "We were unable to deliver the attached message because of an error in the mail server."
- attachStackTrace (optional) - whether an error stack trace is attached to the forwarded message.
Null
Description: This mailet ends processing for this mail.
Parameters: None.
PostmasterAlias
Description: Intercepts all mails addressed to postmaster@<domain> where <domain> is one
of the domains managed by this James server and substitutes the configured James postmaster address for
the original recipient address. This mailet is inserted automatically by James at the head of the root
processor.
Parameters: None.
Redirect
Description: A mailet providing powerful, configurable redirection services.
This mailet can produce listserver, forward and notify behaviour, with the
original message intact, attached, appended or left out altogether.
This built in functionality is controlled by the configuration as described
here.
It is also intended to be easily subclassed to make providing bespoke redirection
mailets simple.
By extending it and overriding one or more of its methods new behaviour can
be quickly created without the author having to address any other issue than
the relevant one. For more information see the javadocs
here.
Parameters:
See javadocs.
RemoteDelivery
Manages delivery of messages to recipients on remote SMTP hosts.
Parameters:
- outgoing (required) - The URL for the repository that will hold messages being processed
by the RemoteDelivery Mailet.
- delayTime (optional) - a non-negative Long value that is the time in
milliseconds between redelivery attempts for a particular mail. Defaults to six hours.
- maxRetries (optional) - a non-negative Integer value that is number of times
the Mailet will attempt to deliver a particular mail. Defaults to five.
- timeout (optional) - The SMTP connection timeout for SMTP connections generated
by this Mailet. Defaults to 60 seconds.
- deliveryThreads (optional) - The number of threads this Mailet will use to generate
SMTP connections.
- gateway (optional) - The host name of the SMTP server
to be used as a gateway for this server. If this value is set, then all
messages will be delivered to the gateway server, regardless of recipient
address. To specify more than one gateway server, add multiple gateway tags,
each containing one value. If more than one server is specified, they will be
tried in order until one is successful. In addition the port may be specified
for each gateway in the format <host>:<port>. If this
value is unset, delivery will occur to SMTP servers resolved by MX lookup.
- gatewayPort (optional) - The default port number of the
SMTP server to be used as a gateway for this server. This value will be
employed when a gateway is set and the gateway value does not specify
a port as described above.
- bind (optional) - If present, this value is a string
describing the local IP address to which the mailet should be bound while
delivering emails. If the tag is absent then the service will bind to the
default local address of the machine. This tag is useful for multihomed machines.
Note: Currently you must use the same IP address for all of those RemoteDelivery
instances where you explicitly supply a bind address.
- debug (optional) - a boolean value (true/false) indicating whether debugging is
on. Defaults to false.
RemoveAllMailAttributes
Description: Removes all attributes on the Mail instance.
Parameters: None.
RemoveMailAttributes
Description: Remove attributes on the Mail instance.
Parameters:
- name (required) - The name of the attribute to remove.
Resend
Description:A mailet providing configurable redirection services. For more information see
the javadocs
here.
Parameters:
See javadocs.
ServerTime
Description: This mailet sends a message to the sender of the original mail message with a server timestamp.
Parameters: None.
SetMailAttributes
Description: Set attributes on the Mail instance.
Parameters:
- name (required) - The name of the attribute to set.
SetMimeHeader
Description: Set an MimeHeader on a MimeMessage.
Parameters:
- name (required) - the name of the header to be added to the message.
- value (required) - the text that will be added as a header to the message.
SMIMECheckSignature
Description: Verifies the s/mime signature of a message. The s/mime signing ensure that
the private key owner is the real sender of the message. To be checked by
this mailet the s/mime signature must contain the actual signature, the
signer's certificate and optionally a set of certificate that can be used to
create a chain of trust that starts from the signer's certificate and leads
to a known trusted certificate.
This check is composed by two steps: firstly it's ensured that the signature
is valid, then it's checked if a chain of trust starting from the signer
certificate and that leads to a trusted certificate can be created. The first
check verifies that the the message has not been modified after the signature
was put and that the signer's certificate was valid at the time of the
signing. The latter should ensure that the signer is who he declare to be.
Parameters:
See javadocs.
SMIMEDecrypt
Description: This mailet decrypts a s/mime encrypted message. It takes as input an
encrypted message and it tries to dechiper it using the key specified in its
configuration. If the decryption is successful the mail will be changed and
it will contain the decrypted message. The mail attribute
org.apache.james.SMIMEDecrypt
will contain the public
certificate of the key used in the process.
Parameters:
See javadocs.
SMIMESign
Description: Puts a
server-side SMIME signature on a message.
It is a concrete subclass of SMIMEAbstractSign, with very few modifications to it.
A text file with an explanation text is attached to the original message,
and the resulting message with all its attachments is signed.
The resulting appearence of the message is almost unchanged: only an extra attachment
and the signature are added.
Parameters:
See javadocs.
ToProcessor
Description: Redirects processing of the mail message to the specified processor.
Parameters:
- processor (required) - the name of the processor to which the message
is to be redirected.
- noticeText (optional) - a String value that, if present,
is set as the error message of the redirected message. If this value is not
present, no error message is set.
ToMultiRepository
Description: Receives a Mail from JamesSpoolManager and takes care of delivery of the
message to local inboxes or a specific repository.
Differently from LocalDelivery this does not lookup the UserRepository This
simply store the message in a repository named like the local part of the
recipient address.
If no repository is specified then this fallback to MailServer.getUserInbox.
Otherwise you can add your own configuration for the repository.
Parameters:
- repositoryUrl (required) - the URL of the repository to which the message
is to be added.
- addDeliveryHeader (optional) - a String value which can be used specify a header which will add to the message.
Default is to not add a header.
ToRepository
Places a copy of the message in the specified repository.
Parameters:
- repositoryPath (required) - the URL of the repository to which the message
is to be added.
- passThrough (optional) - a boolean value (true/false) indicating whether
processing should continue on the message is on. If false, the original message is GHOSTed. Defaults to false.
UseHeaderRecipients
Description: Ignores the recipients associated with the Mail interface. Instead, it regenerates the
mail recipients from the MimeMessage headers (To, Cc, Bcc) and inserts a new message at the queue root
these new recipients. The original message is GHOSTed.
Parameters:
- debug (optional) - a boolean value (true/false) indicating whether debugging is
on. Defaults to false.
UsersRepositoryAliasingForwarding
Receives a Mail from JamesSpoolManager and takes care of delivery of the
message to local inboxes.
Parameters:
- enableAliases (optional) - Specify wether the user aliases should
be looked up or not. Default is false.
- enableForwarding (optional) -Enable the forwarding. Default to
false.
- usersRepository (optional) - Specific users repository
name. Default to empty. If empty does lookup the default userRepository.
WhiteListManager
Manages for each local user a "white list" of remote addresses whose messages
should never be blocked as spam.
The normal behaviour is to check, for a local sender, if a remote recipient
is already in the list: if not, it will be automatically inserted.
This is under the interpretation that if a local sender
X sends a message to a
remote recipient
Y, then later on if a message is sent by
Y to
X it should be
considered always valid and never blocked; hence
Y should be in the white list
of
X.
Another mode of operations is when a local sender sends a message to
whitelistManagerAddress
with one of three specific values in the subject, to
(i) send back a message displaying a list of the addresses in his own list;
(ii) insert some new addresses in his own list;
(iii) remove some addresses from his own list.
In all this cases the message will be ghosted and the postmaster will reply
to the sender.
The sender name is always converted to its primary name (handling aliases).
Parameters:
- repositoryPath - The repository path.
- automaticInsert (optional) - If true automatically inserts the local sender to remote
recipients entries in the whitelist. Default is false.
- whitelistManagerAddress (optional) - Set this to an email address of the "whitelist manager" to send
commands to (default is null).
- displayFlag (optional) - Set this to a unique text that you can use (by sending a
message to the "whitelist manager" above) to tell the mailet to send back the contents of the white list. Default is null.
- insertFlag (optional) - Set this to a unique text that you can use (by sending a message to the "whitelist manager" above)
to tell the mailet to insert some new remote recipients to the white list. Default is null.
- removeFlag (optional) - Set this to a unique text that you can use (by sending a message to the "whitelist manager" above)
to tell the mailet to remove some remote recipients from the white list. Default is null.