Setting mode to 0 can be used with a spamfilterX_null_option to take some other action, such as filing messages in a particular folder when they are determined to be spam. For example:
spamfilter1_null_option=data:,require "fileinto"; fileinto "VIRUS";
Note that filing infected messages into a folder is not a good idea in most cases.
Setting mode to 1 can be used to start an action. For example, the spam result could be included in the reject message by setting mode to 1 and the spamfilterX_string_action option in the MTA to something like:
spamfilter1_string_action=data:,require "reject"; reject "Message contained a virus [$U]";
Like fileinto, using the reject action to deal with viruses is rarely a good idea because it sends the virus back to the sender.
You could also add a tag to the spam message header by adding a line to the option.dat file. Example:
spamfilter1_string_action=data:,addtag “[SPAM detected!]”;
Setting mode to 2 can be used where an action needs to be taken regardless of whether or not the message was determined to contain a virus. The addition of a header field that can subsequently be tested is an obvious application for mode 2:
spamfilterX_string_action=data:,require ["addheader"];addheader "$U"