Monday, November 08, 2010 at 12:01 AM.
system.verbs.apps.Eudora.examples.oneLiners
<<How to work with this example: <<Given the objectmodel nature of Eudora it is not easy to only one run line of this script at a time. <<What you should do is Debug this script and step through it one line at a time. Use the lookup feature of <<the debugger to look at the value of the "result" variable as you go. with objectModel, Eudora, eventInfo { <<most scripts should issue Eudora commands from within a statement like this one local (result); if not isRunning() { <<make sure it is running if not launch it. launch()}; bundle { <<opening and closing things open (mailfolder[""].mailbox["In"]); <<Open a mailbox close (window[1]); <<Eudora 3 or greater <<Close the frontmost window open (mailfolder[""].mailbox["In"]); <<Open a mailbox close (mailfolder[""].mailbox["In"]); <<Close a mailbox open (mailfolder[""].mailbox["In"].message[1])}; bundle { <<getting things <<objectModel way: result = get (mailfolder[""].mailbox["In"].message[1].subject); result = get (setting[25]); <<Does Eudora send message immediately? result = get (mailfolder[""].mailbox["In"].message[1].sender); <<Non Object Model way: result = getMessageSubject (mailfolder[""].mailbox["In"].message[1]); result = getSetting(25); result = getMessageSender (mailfolder[""].mailbox["In"].message[1])}; <<Notice that sender is a different concept in objectModel vs non objectModel scripts <<getMessageSender actually returns the "From:" field, where getting the sender property of a message gets <<what Eudora displays in the sender column of index views. bundle { <<moving messages result = move (mailfolder[""].mailbox["in"].message[1], endOf (mailfolder[""].mailbox["trash"])); <<result now contains a reference to the moved message move (result, endOf (mailfolder[""].mailbox["In"]))}; <<move it back to the Inbox bundle { <<Does something exist? result = exists (mailfolder[""].mailbox["In"]); <<Does an inbox exist? result = exists (mailfolder[""].mailbox["blah"]); <<does a mailbox called blah exist? result = exists (mailfolder[""].mailbox["in"].message[1])}; <<Does the Inbox contain an inbox message bundle { <<forward a message local (newMsg); newMsg = forward (mailfolder[""].mailbox["in"].message[1]); <<forward a message, no fields can be set at this time result = get (newMsg.subject); setMessageSubject (newMsg, "Test Subject")}; <<setting of the subject by setting msg property seems to be broken in 3.0 bundle { <<connecting << connect and send Outgoing mail connect (sendMail:true); << connect and check mail connect (checkMail:true)}; bundle { <<misc result = duplicate (mailfolder[""].mailbox["in"].message[1], endof (mailFolder[""].mailbox["Trash"])); <<duplicate a message to the trash result = count (mailfolder[""].mailbox["In"], message); <<how many messages in "In" box? <<Count message in In box <<Won't work if you keep your signature somewhere other than the system folder... result = getSignature()}; bundle { <<creating and working with a message local (msg); msg = createMessage(); <<create a new Outgoing message <<set (msg.subject, "Subject") <<Setting of message subject property doesn't seem to work in Eudora 3 <<Using the setMessageSubject verb actually sets the "subject" field of the message. setMessageSubject (msg, "Subject"); set (msg.body, "Boo!"); <<The one step way: newOutgoingMessage ("bob@bobo.com", user.mailAddress, "What a subject", "Hello There")}; bundle { <<attaching a file local (f, msg); msg = createMessage(); file.getFileDialog ("choose file to attach", @f, 0); attachFiles (msg, f)}; }
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.