Filter Messages using a Lua Script

You can configure the Exchange Connector to retrieve messages that have a specific set of properties. To retrieve messages that have specific properties, use the MessageFilterLua configuration parameter.

The MessageFilterLua parameter specifies the location of a Lua script to filter the messages in the repository.

The Lua script must include the following functions:

NOTE:

The message properties returned by the requiredMapiProperties function are returned as an array: properties[MapiProperty][value].

Some properties have a single value, for example, the subject of an e-mail message would be returned as properties[0x0037001E][1].

If a property has multiple values, these can be accessed as properties[MapiProperty][2], properties[MapiProperty][3], and so on.

Example: Single Property

You could use the following script to retrieve messages sent to brian@example.com. All other messages are ignored.

function requiredMapiProperties()
   return {0x0E04001F};
end

function filter(properties)
   return properties[0x0E04001F][1]=="brian@example.com";
end

Example: Multiple Properties

The following script demonstrates how to evaluate more than one property. This example retrieves all messages that were sent to one@autonomy.com or two@autonomy.com, and have the subject Important.

The search function searches every value of the specified property for acceptable strings. This means that messages sent to more than one recipient are retrieved, as long as one of the required addresses is found.

function filter(properties)
   local addresses={ "one@autonomy.com" , "two@autonomy.com" }
   local subjects={ "Important" }

   local to=search(properties[0x0E04001F],addresses)
   local subject=search(properties[0x0037001E],subjects)

   local result = to and subject;
   return result;
end

function requiredMapiProperties()
   return {0x0E04001F,0x0037001E};
end

function search(property,values)
   for a,b in pairs(property) do
      for k,v in pairs(values) do
         if string.find(b,v)~=nil then
            return true;
         end
      end
   end
   
   return false;
end

_FT_HTML5_bannerTitle.htm