The ISMTPOnArrival_OnArrival event sink in Exchange 2003 can be used to trigger code to perform various tasks. I have recently used this method to strip attachments from messages and then FTP them to a remote machine, based on the message subject and recipient.
In this, more basic example the entire message is saved to the filesystem in .eml format to a folder specified within a variable. The script could be made much more elaborate with the addition of a couple of arrays to specify multiple subjects/locations. The idea is that you could setup a system where e-mails can be automatically filed without having to depend on user intevention and avoiding the requirement for 3rd party software.
This can be implemented by following the example from this Microsoft Knowlegbase article. The file referred to in the article called SMTPREG.VBS can be found here on MSDN. Instead of the SMTPMsgCheck.vbs file referenced in the article create a file called SMTPSubjectCheck.vbs and insert the following code(you will also need to modify the registration batch file accordingly) :
<SCRIPT LANGUAGE="VBScript"> Sub IEventIsCacheable_IsCacheable() 'To implement the interface, and return S_OK implicitly End Sub Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus ) Dim Pos, SubjectToFind, SaveFolder, MsgStream SubjectToFind="Project1" SaveFolder="c:\\" Pos=InStr(1,Msg.Subject,SubjectToFind,1) if Pos <> 0 then set MSGStream= Msg.Getstream SaveFile=SaveFolder & Msg.Senton & "-" & msg.subject & ".eml" SaveFile=Replace(SaveFile, "/", "_") SaveFile=Replace(SaveFile, " ", "_") SaveFile=Replace(SaveFile, ":", "_",3) MsgStream.SaveToFile savefile,2 MsgStream.Close Set MsgStream = Nothing End if End Sub </SCRIPT>
In this example the script is looking for a subject line that contains the text “project1″(not case sensitive) and saving it to the root of c:
I have attached a zip file to the blog post with all the required files in one zip file, just be cautious of using it if you already have event sinks registered(drop the files into c:\eventsink).