Since SPAM is becoming a common complaint with users, I have added a few simple items to the mail template which allows automatic blocking of certain email addresses.
I used a profile document in the mail database to store the blocked addresses. I named this form 'SPAM_Profile'. It contains a single text field named 'SPAM_Delete' (multi-value).
I then created a database agent named 'View SPAM Profile' which allows the user to edit their Blocked Address list. The code for this is simply: @Command([EditProfile];"SPAM_Profile")
I then created an action in the ($Inbox) folder (I put mine as 'ToolsBlock this Address' so it falls under the Tool button), and the Memo form with the following formula:
tmpFrom:=@Name([Address821];From); @If(!@Contains(tmpFrom;"@") ; @Prompt([OK];"Internal";"You cannot block internal email addresses"); @If(@Prompt([YESNO];"Verify";"Are you sure you want to
automatically block all mail from '" +tmpFrom + "'?"); @Do( @SetProfileField("SPAM_Profile";"SPAM_Delete";@Trim(@Unique(@GetProfile
Field("SPAM_Profile";"SPAM_Delete"):tmpFrom))));""))
To keep things a little cleaner, set the hide-when formula on the new action to:
From="" | @IsNewDoc | !@Contains(@Name([Address821];From);"@")
as well as checking 'Previewed for Reading', 'Previewed for Editing', 'Opened
for Editing' and 'Web Browsers' in the hide-when properties.
Finally, create the 'SPAM_Process' agent using the 'Before new mail arrives' setting (Lotus, can
we please have more than one?) with the following code:
@If(@Contains(@Name([Address821];From);"@") & @Contains
(@GetProfileField("SPAM_Profile";"SPAM_Delete");@Name
([Address821];From)) ; @DeleteDocument;"")
Enjoy!
This was first published in April 2002