MailMaster 1.0.4 MailMaster is a FaceSpan Application that takes mailing lists and puts their posts into a simple FileMaker Pro database. MailMaster requires Eudora (Light) 3.x (and possibly higher) and FileMaker Pro 4 (it may work with 3, I haven't tried). The MailMaster system we have is an old 8 MB IIci running 7.5.5 with RAMDoubler to let it have all the apps open at once. It has Eudora Light 3.1.3 and FileMaker Pro 4.0v1 connecting to a FMPro Server on our local network. Performance isn't great on that machine, but it doesn't have to be. Setup You need these parts to run the MailMaster: Eudora Light 3.1.3 from http://www.eudora.com/ FileMaker Pro from FileMaker, Inc. On older systems, you'll need the Appearance Manager. You can get it from FaceSpan's website: http://www.facespan.com/ If you want to have the MailMaster (MM) automatically mount volumes, you need to have a scripting addition installed that allows you to do so. The MailMaster supports the 8.5 Mount Volume command as well as the MountVolume and MountIP OSAXen. You can also run an external script file or a script line to handle it. Error handling in MailMaster is controlled by the "Stop on Errors" checkbox in the MailMaster Settings dialog. If you have the "Stop on Errors" option turned on, MailMaster will come to a complete stop on any critical error. If you turn off that option, MailMaster will abort the current run, but will try again the next time a check is scheduled. Be warned that when errors occur, you may lose or get extra messages in your archive. This is a design flaw in MailMaster which was/is to be fixed in 1.1. For full safety you might want to keep copies of messages handled by MailMaster (your Eudora filters can be set to Copy incoming messages as well as Transfer them, or you can edit the MailMaster source.) Eudora Notes Before running MailMaster, you need to have Eudora Light set up, running, and able to check mail. Then make these changes to your settings: Turn off automatic mail checking if you are letting MM run unattended (MM will tell Eudora to check mail, and it keeps the alert from flashing in the menu all the time, not to mention possible timeouts on launch.) Make a folder called "Mailing Lists", and then make mailboxes in that folder for each mailing list you want to handle. Set up Filters in Eudora to separate the mail into those mailboxes. FileMaker Notes In Filemaker, you need to provide a database with at least those elements of the Sample Template that you want to save. (The Sample Template is an extremely simple FileMaker Pro DB that will archive one mailing list for you.) Your DB (in this version of MM) should have an automatically-updated index numbering field. Also, the names of fields that should be filled in should match their headers. The "New Record Script" should switch to the proper layout before making a new record. This can be very important (the required fields must exist in the layout used to make records...thus, a make new record layout). The sample database provided has a layout specifically for making records (it's a copy of the Browser layout). The "After Script" should exist and should end record creation. MailMaster Notes OK, now that you have Eudora and FMP set up, you can configure the MailMaster. The first time MM is run it will ask you where Eudora and FileMaker Pro are. Once you select those two files, they will be launched, then the Status window will open. MailMaster has four dialogs that are used to set various options for Mail Lists, Volumes, and MM itself. You start setting options by clicking on the MailMaster Settings button (the MM icon with radio buttons on it). MailMaster Settings Mailing Lists: All the mailing lists you have set up in MM will be listed here. You can use the New, Delete, and Options buttons to add a new, delete existing, or change options on existing mailing lists. Check for mail every...: You can set it between 0 minutes (constant checking) and 10000 days. I recommend a time between 1 hour and 1 day, but you are free to choose any amount of time you want. When Idling, Quit...: If either of these is checked, the app referenced will not be launched at startup. Instead, MM will only launch the app if it is needed, and will have the app quit after MM is done working with it. Note that the MailMaster will not know if you are working with the app already (in this version). Network Volumes: MM can automatically log you on to a network server if you wish it to. This opens the dialog where you can create volumes to try. Mail List Settings List Name: The name that MailMaster refers to the mailing list by. Mailbox Name: The name of this ML's mailbox in Eudora. Database Name: The name of the Database MM refers to when talking to FileMaker. Save Subject, From, To, Body, Date, Time, Attachments: You can have MM store any or all of these parts of the message. If you want to store Attachments you need to set a folder to store them in. (Also, that folder must exist when you hit OK.) Database Setting Summary: This shows you what the current settings are in the Database Settings dialog. This information is what MM uses to talk to FileMaker. Save Defaults: Clicking this button saves the current settings as the default settings for any new Mailing Lists created. (This is undone if you hit Cancel here or at the MailMaster Setup dialog.) Database Settings: This opens the Database Settings dialog. Database Settings Open Method: You can have FileMaker open the database in four different ways: - Open Direct: equivalent to tell app "FileMaker Pro" to open "Database Name". This is useful if you have a local FileMaker server with guest access enabled, which is what I have at work. - Open Local File: Similar to Open Direct, but you choose a local file to open instead of just giving FileMaker the database name. - Run Script File: You can choose a script to run. See below for more information. - Run Script Line: Type in a line of AppleScript for MM to run. Not all that useful, but included for completeness. Set and the changing Info field: These are used to set options for the Open Method. New Record Script: When MailMaster goes to add a message to the database it calls the New Record Script in FileMaker. This should be a ScriptMaker script that switches to the layout for making new records (if necessary) and makes a fresh record for MM to fill in. Use Before Script: If you have a ScriptMaker script you want to run before filling in the record (but after it's been created) you can specify it here. This is probably not very useful, as said steps can also happen in the New Record Script. Oh, well. Use After Script: This script is called after MM fills in the record. It should do any post-processing you want to do and then Exit Record to end data entry. It should always exist to close the record for now. Network Volumes Network Volumes, New, Delete: These allow you to make new and delete existing Network Volume records. Mount When Needed: The entire purpose for the Network Volume settings. By using this, MM will automatically open any volume it can for Attachment storage. Unchecking this disables MM mounting that volume. Using: MM requires an OSAX of some kind to mount volumes. Four are pre-programmed into MM, while the other two allow you to run Script Files (see below) or a script line to mount the volume. Username, Password, Zone, Server, and Volume Name: These are the Appletalk settings required to mount a volume. I apologize for not providing protection for password entry. MM is not a secure setup by any means. Username, Password, IP, and Volume: These are the IP settings required to mount a volume. The IP field may be numbers or text. MM will create the URL for you. (A full URL for mounting, say, an ASIP server looks like: afp://username:password@127.0.0.1/volName/ This might be useful if you want to mount a volume using guest access, as MM doesn't handle that yet. Sorry! :( Unmount (Put Away) Afterwards: When MM is done checking and moving mail, MM will put away any volumes it attempted to mount who have this option checked. Other Notes The MailMaster uses the fonts Chicago (which *should* be switched out for your Large System Font), Geneva, and Palatino. When using "Run Script File" for Network Volumes, your script file will be load scripted and this handler will be called: NV_MountVolume(volRec) which returns true (success) or false (not success--trap your errors!) Here's what a Volume Record looks like. volRec: {volName:"", autoMount:true, mountUsing:1, volUser:"", volPassword:"", volServer:"", volZone:"", putAway:true} volName is "Volume:", volUser is "Username:", volPassword is "Password:", volServer is your file's path, volZone is "Zone:". You can ignore autoMount, mountUsing, and putAway. When using "Run Script File" for Opening FileMaker Databases, your script file will be load scripted and this handler will be called: DB_OpenDatabase(dbName) which returns true if it succeeds and false otherwise (trap your errors!) Future Ideas for the MailMaster Docs! Good ones! Real error handling! :) This would include an activity log and changing Fatal Error dialogs into FaceSpan dialogs that dismiss themselves. (The MailMaster project began as an internal thing for work with virtually no error handling whatsoever, and thus the errors are usually trapped everywhere.) Secured entry for passwords, encrypted password storage, and username/password entry for database information. On the flip side, support for guest access in the UI (you can do guest access through loaded scripts pretty easily). Checking for mounted volumes and open applications, and not closing them if they were already running/logged in. Saving the window positions... Specifying the folder name in the interface, so that you can have some more freedom of organization. An option to not verify the Attachments folder, and/or to attempt to mount its server if it is in the Network Volumes list. Moving "Get the Message", "Add the Message to the Database", and "Mount the Server" into external scripts, with a specified interface. Thus, you can use the MailMaster with other mail, database, and network logon apps/OSAXen. MM is halfway set up for this now. When this happens, the mandatory New Record Script and After Script will be merged into the Database section. Support for a user-created list of fields, which is then passed around the plugins to let them handle them as they can. Support for using a unified message database instead of individual databases for each mailing list, by adding more entries to the information available to the Database Plugin. You can fake this now by pointing all the database options at the same database and writing a Before or After Script that gets the Mailing List Name through: tell application "MailMaster 1.0" to set mlName to GetCurrentMLName() and then fill in a field that lists all the mailing list names that you are on. (This is a quick hack.) Changeover to a Localizable format. ...and whatever else I haven't thought of yet. If you are interested in writing the plug-in script for your EMail client, Database program, Network Login method, or something else that can be useful to MailMaster users, let me know at the EMail address below. Legal Info MailMaster 1.0.4 has been released as freeware. Portions of this software are included under license. 1998 Digital Technology International. All rights reserved. For more information call 801-226-2984 or see http://www.facespan.com. All questions/comments/suggestions/bug reports/flames/etc. are welcome at parody@esglabs.com Mike Miller ESG Labs November 14, 2000