Use Script Rule
Summary
Below, we provide additional information and examples about what can be achieved within a Script Rule.
Script Context
This table shows a subset of what is available, we host our own utility class javadoc, e.g. IJEMHVelocityContextUtils (jemh-api 4.1.33 API)
API | Notes |
---|---|
| Get body content of email. Not available for preprocessing task. |
| Gets the Subject content of email. |
| Get all headers of a message. |
| Get value of a message header Parameters
|
| Set the value of a message header Parameters
|
| Adds output that is recorded during execution and shown in the processing report. Parameters
|
| Set the processing outcome of the script Parameters
Note: |
| Field processor and Script Rule only. Map - JavaScript | MDN Note: |
| Searches within string values for matching content.RegExp - JavaScript | MDN |
| This is used to define that the script rule is a match. This will result in that Rule and Project being used to process the email. |
Examples
Match a keyword in the email body using a regular expression
This script uses a Regular Expression to match a specific word within the body. If found then it will match on this rule and will add the value to a specific Custom Field.
Example Script:
var pattern = new RegExp("example:\\s([0-9]+)").exec(message.getBody());
if (pattern !== null)
{
print("Matched Value: " + pattern[1]);
resultMap.set("example", pattern[1]);
setMatch(true);
}
Example Test Case:
MIME-Version: 1.0
Received: by 10.223.112.12 with HTTP; Sat, 18 Jun 2011 22:42:26 -0700 (PDT)
Date: Sun, 19 Jun 2011 17:42:26 +1200
Subject: This is the email subject
From: ryan@thepluginpeople.com
To: test@test.com
Content-Type: text/plain; charset=UTF-8
This is an example email
example: 100
Processing Report:
Here you can see the example mail processing report generated by JEMHC for this Test Case. Within the report it states that the script rule was matched and that a value was matched and has applied this value to the example Custom Field.
Match if the email is sent from a specific sender
This script gathers the from header and then checks if the sender address matches and if so then the rule will be set as a match.
Example
var senderAddress = message.getHeader('from');
if (senderAddress == "ryan@thepluginpeople.com")
{
setMatch(true);
}
Test Case
Processing Report