//Note 1: all DLL indexing starts at zero, not 1 - just like a TStringList //Note 2: While it's possible to edit the text files in notepad (or wordpad when they // get too big for notepad, it's not advisable as the content is never verified. // This is the command list from servers.dll // This DLL saves a data file containing the account names, passwords, server names // and permitted to-addresses in a plain text file called DataFile.txt Procedure UpdateServer;external 'servers.dll'; Procedure InitialiseAccounts;external 'servers.dll'; Procedure FreeAccounts;external 'servers.dll'; Function GetAccountCount:Integer;external 'servers.dll'; Procedure SetAccountNumber(Index:integer);external 'servers.dll'; Function GetServerName:Pchar;external 'servers.dll'; Function GetAccountName:Pchar;external 'servers.dll'; Function GetPassword:Pchar;external 'servers.dll'; Function GetEmailAddressCount: integer; external 'servers.dll'; Function GetEmailAddress(Index :Integer):PChar; external 'servers.dll'; // This is the command list from WABRead.dll // WABRead reads email addresses from Windows Address Book and gets over 90% correct // There are two versions of this library. A small version without an inbuilt verificatio // screen and this one, which has one. Data is stored as a plain text file // called PermAdd.Txt. Function CheckForWAB : boolean; external 'WABRead.dll'; Function ReadWAB : integer; external 'WABRead.dll'; Procedure FreeWabMemory; external 'WABRead.dll'; Function GetAddress(Email_Address : integer):PChar; external 'WABRead.dll'; Procedure SavedAddressesInitialise; external 'WABRead.dll'; Procedure SavedAddressesLoad; external 'WABRead.dll'; Procedure SavedAddressesStore(EmailAddress: PChar);external 'WABRead.dll';//not used in this program Procedure SavedAddressesSave;external 'WABRead.dll';//not used in this program Function SavedAddressesCount : Integer;external 'WABRead.dll'; Function SavedAddressesGet(Address_Index:Integer):PChar;external 'WABRead.dll'; Procedure DisplayAddressesForm;external 'WABRead.dll';//not in the lite version // Subjects.dll. This is the Subject line analyser. // This uses two text files - one of words used by spammers // and one of words used by people in the address book // The text files are: GoodSubjects.Txt and BadSubjects.Txt Procedure SubjectInitialise; external 'Subjects.dll'; Procedure FreeSubjects; external 'Subjects.dll'; Procedure AssignSubject(My_Subject_Line:PChar);external 'Subjects.dll'; Function BadSubjectWords: Boolean;external 'Subjects.dll'; Function BadConsonantBlock : Boolean;external 'Subjects.dll'; //checks for blocks Function BadVowelBlock : Boolean;external 'Subjects.dll'; //checks for blocks Function BadNumberBlock: Boolean;external 'Subjects.dll'; //checks for blocks Function BadSymbolBlock: Boolean;external 'Subjects.dll'; //checks for blocks Procedure SetAsSpam;external 'Subjects.dll'; Procedure SetAsValid;external 'Subjects.dll'; Procedure VerifyBadWordList;external 'Subjects.dll'; // deletes words in badwordlist // that are also in goodwordlist // This is an IP and DWord extractor. // It'll strip IPs out of any email headers // Spammer I/Ps are recorded as a text file. The idea is that // if a spammer fakes an IP that's used by a regular sender (in the address book) // that it's possible to remove it from the list Procedure Initialise;external 'Stripper.dll'; Procedure CleanUp;external 'Stripper.dll'; Procedure StuffItIn(HeaderLine : PChar);external 'Stripper.dll'; function ReturnDWord(IPNo : PChar): Integer;external 'Stripper.dll'; Procedure CrackHeader;external 'Stripper.dll'; Function GetHexCount: Integer;external 'Stripper.dll'; Function GetIPCount: Integer;external 'Stripper.dll'; Function GetIPData(Index : Integer):PChar;external 'Stripper.dll'; Function GetHexData(Index : Integer) : PChar;external 'Stripper.dll'; Function CheckAgainstBadList: Boolean;external 'Stripper.dll'; Procedure AddToBadList;external 'Stripper.dll'; Procedure RemoveFromBadList;external 'Stripper.dll'; Procedure GetReadyForNextHeader;external 'Stripper.dll'; //Word Cleaner. Feed an email body (not MIME format and NO attachments) into //the WordCleaner and if there are words commonly used by spammers then a spam //percentage is returned. Words used in normal emails are not listed in the spam //word list. Two lists are in operation, both saved as text files. //The spam word list consists of words used in spam that don't occur in normal email //The CheckDuplicates operation reads the good word file and the bad word file and might //thus take quite a while. It is anticipated the spam word file will be brief while the //good word file will not. Procedure CheckDuplicates;external 'WordCleaner.dll'; Procedure SetUpWordCleaner;external 'WordCleaner.dll'; Procedure FreeWordCleaner;external 'WordCleaner.dll'; Procedure SendLineOfWords(LineOfWords :PChar);external 'WordCleaner.dll'; Procedure SetAsGoodWords;external 'WordCleaner.dll'; Procedure SetAsBadWords;external 'WordCleaner.dll'; Procedure InitialiseEmail;external 'WordCleaner.dll'; Function SpamWordPercentage: integer;external 'WordCleaner.dll'; //The Header List DLL is designed so that the end user can check incoming email headers //to check the simple things such as subjectline, sender and destination //The title can be changed so it's really multi-use //Checked items can be deleted using the main program Procedure InitialiseHeaderDisplay;external 'HeaderList.dll'; Procedure ShowHeaderDisplay;external 'HeaderList.dll'; Procedure FreeHeaderDisplay;external 'HeaderList.dll'; Procedure HeaderSetTitle(Text : PChar);external 'HeaderList.dll'; Procedure InsertHeader(Index: Integer; ToAddress, FromAddress, SubjectLine : PChar);external 'HeaderList.dll'; Function GetHeaderResultCount: Integer;external 'HeaderList.dll'; Function GetHeaderResult(Index : Integer):Boolean;external 'HeaderList.dll';