• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
AppleScript used as an outbox rules stop working after upgrade to ML
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AppleScript used as an outbox rules stop working after upgrade to ML


  • Subject: AppleScript used as an outbox rules stop working after upgrade to ML
  • From: Larry Chan <email@hidden>
  • Date: Wed, 01 Aug 2012 01:29:44 +0000 (GMT)

Anyone can help to have a look of the following script and let me know why it is not working anymore after upgraded to ML?
The script is originally from Omnifocus Forum: http://forums.omnigroup.com/showthread.php?t=12810&page=10

Script
======

(*

Waiting For Mails to OmniFocus Script

by simplicityisbliss.com, Sven Fechner

MailTags project and due date compatibility added by Scott Morrison, Indev Software

Based on an Outbox Rule (Mail Act-On) in Mail.app this script adds specific messages

to the OmniFocus Inbox with the waiting for context

MailTags is required to automatically set the project and the due date.


Mail Act-On (www.indev.ca) is required to define the Outbox Rule to only

create tasks for those outgoing emails that are to be tracked in OmniFocus

A sample Outbox rule may be

if MailTags Tickle Date is After 0 days today  

Run Apple Script: [ThisAppleScript]

The script uses Growl for feedback notification if it is installed and running

*)



--!! EDIT THE PROPERTIES BELOW TO MEET YOUR NEEDS !!--


-- Do you want the actualy mail body to be added to the notes section of the OmniFocus task?

-- Set to 'true' is or 'false' if no

property mailBody : true


-- Text between mail recipient (the person you are waiting for to come back) and the email subject

property MidFix : "to follow up re:"


-- Name of your Waiting For context in OmniFocus

property myWFContext : "Waiting For"


-- Default due time

property timeDue : "3:00:00 PM"


-- Default lead time for start date, in days, or 0 if start date not desired

property leadStart : 0


-- !! STOP EDITING HERE IF NOT FAMILAR WITH APPLESCRIPT !! --


--Configuration for Growl messages 

property GrowlRun : false

property scriptName : "Waiting For Mails to OmniFocus"

property notifySuccess : "Success Notification"

property notifyFail : "Failed Notification"

property titleSuccess : "Waiting For Mail added"

property titleFail : "Waiting For Mail to OmniFocus FAILED"

property txtSuccess : " added to OmniFocus successfully"

property txtFail : " to OmniFocus to add successfully"

property txtIcon : "OmniFocus"


on perform_mail_action(theData)

--Check if Growl is running

tell application "System Events" to set GrowlRun to (count of (every process whose name is "GrowlHelperApp")) > 0

--Setup Growl

if GrowlRun then tell application "GrowlHelperApp" to register as application scriptName all notifications {notifySuccess, notifyFail} default notifications {notifySuccess, notifyFail} icon of application txtIcon

--Get going

tell application "Mail"

set theMessages to |SelectedMessages| of theData --Extract the messages from the rule

repeat with theMessage in theMessages

set theSubject to subject of theMessage

set theRecipient to name of to recipient of theMessage

set theMessageID to urlencode(the message id of theMessage) of me

try

using terms from application "MailTagsHelper"

set theDueDate to (due date of theMessage) as date

if (leadStart is not 0) then

set theStartDate to theDueDate - leadStart * days

else

set theStartDate to missing value

end if

set theDueDate to my setDate(theDueDate)

end using terms from

on error theError

end try

-- Check if there is one or more recipients

try

if (count of theRecipient) > 1 then

set theRecipientName to (item 1 of theRecipient & (ASCII character 202) & "and" & (ASCII character 202) & ((count of theRecipient) - 1) as string) & (ASCII character 202) & "more"

else

set theRecipientName to item 1 of theRecipient

end if

set theTaskTitel to theRecipientName & (ASCII character 202) & MidFix & (ASCII character 202) & theSubject

set messageURL to "Created from message://<" & (theMessageID) & ">"

set theBody to messageURL

if mailBody then set theBody to theBody & return & return & the content of theMessage

-- Add waiting for context task to OmniFocus

tell application "OmniFocus"

tell default document

set theContext to context myWFContext

set theTask to make new inbox task with properties {name:theTaskTitel, note:theBody, context:theContext, start date:theDueDate}

if myProject is not "" then

set theProject to project myProject

move theTask to end of tasks of theProject

end if

end tell

end tell

on error theError

do shell script "logger -t outboxrule 'Error : " & theError & "' "

end try

my GrowlSuccess("Mail: " & theSubject)

end repeat

end tell

end perform_mail_action


on GrowlSuccess(theMessage)

if GrowlRun then tell application "GrowlHelperApp" to notify with name notifySuccess title titleSuccess description theMessage & txtSuccess application name scriptName

end GrowlSuccess


on urlencode(theText)

set theTextEnc to ""

repeat with eachChar in characters of theText

set useChar to eachChar

set eachCharNum to ASCII number of eachChar

if eachCharNum = 32 then

set useChar to "+"

else if (eachCharNum ≠ 42) and (eachCharNum ≠ 95) and (eachCharNum < 45 or eachCharNum > 46) and (eachCharNum < 48 or eachCharNum > 57) and (eachCharNum < 65 or eachCharNum > 90)and (eachCharNum < 97 or eachCharNum > 122) then

set firstDig to round (eachCharNum / 16) rounding down

set secondDig to eachCharNum mod 16

if firstDig > 9 then

set aNum to firstDig + 55

set firstDig to ASCII character aNum

end if

if secondDig > 9 then

set aNum to secondDig + 55

set secondDig to ASCII character aNum

end if

set numHex to ("%" & (firstDig as string) & (secondDig as string)) as string

set useChar to numHex

end if

set theTextEnc to theTextEnc & useChar as string

end repeat

return theTextEnc

end urlencode


on setDate(theDueDate)

set theDate to (date string of theDueDate)

set newDate to the (date (theDate & " " & timeDue))

return newDate

end setDate


====


Thanks a lot!




 _______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden

  • Prev by Date: Re: Asking for Photoshop Batch help please.
  • Next by Date: Re: Asking for Photoshop Batch help please.
  • Previous by thread: Re: Asking for Photoshop Batch help please.
  • Index(es):
    • Date
    • Thread