Process Messages
When a new message is downloaded
When a new message is downloaded, it is ready to be processed by the application. Various action can now be taken. For instance, automatic reply to a customer requests, processing unsubscribe requests, processing bounces and many more. 
The following options may be selected:
Call Mailing_OnReceiveMail() script event (advanced): The Mailing_OnReceiveMail() event from the Global Script is called by the application when a message arrives in the Inbox folder. Enter your own VBScript code in this event. See the Server Side Scripting Guide for details. 
Apply the following rules: A message rule is a set of actions that will be executed if one or more conditions are verified. For example, removing the sender of the message from the receivers list if the subject contains the word 'Remove'. In order to create a new rule, click on Add a rule on the right. In order to edit an existing rule, click on in the rules table
Conditions
1. Find values in the message body: Search for one or more text values in the message body. If the message contains an html part and an alternative text part, the search will be performed in the html part only.
2. Find values in the subject: Search for one or more text values in the message subject.
3. Find values in a header field: Search for one or more text values in a header field (header fields examples are available in the Knowledge Base - Header Fields).
4. Find values in a body field: Search for one or more text values in a body field. A field in a message body is represented by the following format: " field name: field value ". If the field value is on multiple lines, it must be between quotes (for more details, see the Webforms Sample).
5. Find values in the 'To' field: Search for one or more text values in the 'To' field.
6. Find values in the 'CC' field: Search for one or more text values in the 'CC' field.
7. Find values in the 'From' field: Search for one or more text values in the 'From' field.
8. Check the message date: Check if the message sent date is included in a specified interval.
9. Check the message size: Check if the message size is included in a specified interval.
10. Check the message priority: Check the message priority. If the priority is not set, the default message priority is 'Normal'.
11. Delivery Status Notification (DSN): Check if the message is a DSN / Bounces. A DSN is an email sent by the recipient mail server. It indicates if the message has been delivered, delayed, failed, relayed or expanded (for more information on how to manage DSNs, see Knowledge Base - Managing DSNs or Bounces):
  • Delivered: Indicates that the message has been sussessfully delivered. For receiving this DSN type, you need to indicate that you want to receive success DSNs in the mailer properties.

  • Relayed: If you have indicated in the mailer properties that you want to receive DSN when the message is delivered (see above), the relayed DSN type warns you that the receiving mail server does not create DSN for successful delivery.

  • Expanded: Indicates that the message has been sussessfully delivered but forwarded directly to other email addresses. Therefore, it is possible that you receive new DSNs regarding the same message.

  • Failed: Indicates that the message delivery has failed. This can be due to many circumstances. To refine the processing of failed DSN according to these circumstances, see Knowledge Base - Managing DSNs or Bounces.

  • Delayed: Indicates that the message has not been successfully delivered but that the mail server is still trying to deliver it. Therefore, it is possible that you receive new DSNs regarding the same message. The delivery can be delayed for many circumstances. To refine the processing of delayed DSN according to these circumstances, see Knowledge Base - Managing DSNs or Bounces.

12. Received date and time schedule: Check if the message is received on specific day(s) and hour(s) of a week.
13. The record exists in a data source: Search is performed by comparing a constant value or a message header with a data source field.

Example: I want to process messages when the email address of the sender ('From' field) already exists in the data source 'email' field.

  1. Choose the list where the email address should be located.
  2. Click on Add Conditions (it is possible to modify the list where the email address should be located by clicking on DataSource).
  3. Indicate that the 'email' field (1) is equal to (2) a field from the message header (3) which is 'From' (4).

14. The record does not exist in a data source: Does the opposite of the above condition.
15. The message is digitally signed or encrypted: Check if the message is digitally signed or encrypted.
16. The message is an unsubscribe request: Check if the message is an unsubscribe request. This condition only recognizes the unsubscribe request received from a subscriber who used the unsubscribe link rendered by the application.
Actions
1. Forward the message: Redirects the message to one or more recipients. The message body or subject is not altered in anyway. The redirected message is placed in the Outbox folder until it is sent.
2. Move the message to a folder: Moves the message from the Inbox folder to any Inbox sub folder. If the destination folder does not already exist, the application will create it automatically when processing incoming messages.
3. Reply to the message: Creates a new message in reply to the received message. The newly created message is placed in the Outbox. The response can be a text or a message template (.eml file). The text can include AMS code (VBScript).
4. Add a text to the project log: Appends some text to the project log. This action can be used for debugging and reporting purpose.
5. Add a record to a data source: Adds a record to the receivers list, the black list or any other data source. Record values may be set with constants or fields that are extracted from the received message (e.g. From field, etc.).

Example: When I receive a message, I want the application to add the email address of the sender in the 'email' field of my datasource.

  1. Choose the list where you want to add the email address of the sender.
  2. A table presents you all the datasource fields available. By clicking on the email field, I am going to associate the email field with a value from the message I have just received (it is possible to use another the list by clicking on DataSource).
  3. Indicate that the The field email is equal to the Email address from the 'From' field.
6. Update a record in a data source: Modifies one or more records in the receivers list, the black list or any other data source. Records are searched the same way as in 'The record exists in a data source' condition. Fields can be set with constants, values extracted from the received message, and for numerical values, they can be incremented or decremented.

Example: When I receive a DSN, I want to increment by 1 the DSN field of the recipient.

  1. Choose the list where the DSN field is located.
  2. A table presents you all the datasource fields available and another one lets you add conditions for updating the datasource. In order to configure this process, you have to follow 2 steps:

    - First, add a condition in order to tell the application which record has to be updated. For instance, when I receive a DSN regarding the message I sent to steve@mydomain.com, I want the DSN field incremented by 1 for this particular recipient. Thus, the first step is to say that you want to update the record where the 'email' field (1) is equal (2) to the DSN original recipient (3).

    - Second, I set the action. By clicking on in front of the DSN field, I am going to tell the application to increment by 1 the DSN field.

   
7. Delete a record from a data source: Remove one or more records from the receivers list, black list or any other data source. Records are searched the same way as in 'The record exists in a data source' condition.

Example: When I receive a DSN, I want the application to delete the appropriate record of my datasource. For instance, when I receive a DSN regarding the message I sent to steve@mydomain.com, I want the application to delete the record where the 'email' field is steve@mydomain.com.

  1. Choose the list where the record to delete is located.
  2. Click on Add Conditions (it is possible to modify the list you are using by clicking on DataSource).
  3. Indicate that the record to delete is the one where the 'email' field (1) is equal to (2) the DSN original recipient (3).

8. Delete the message: Deletes the received message.
9. Save sender certificate to receiver certificate store: When receiving a signed or encrypted message, you can choose to save the sender sertificate in your certificate store. It will allow you to send to this receiver encrypted messages as you need the sender and the receiver certificate to encrypt messages.
10. Call a web site page : Lets you run actions on an external web application.
11. Stop processing rules: This prevents other rules from executing, it does not prevent other actions in the current rule to be executed.
Test incoming messages processing
To test rules or scripts that process incoming messages, you can simulate the reception of new messages. Click on Test and select one or more messages (messages must be in MIME format, .eml file).