Jump to content
sterling

Sending mail to Omnifocus

Recommended Posts

I'm using the AppleScript below as part of a workflow to get mail messages to OmniFocus. This recently broke. I'm just wondering if anyone has a clue what the issue may be? Not sure if this is due to an Apple update, or an OmniFocus one.

 

Error message

[2017-01-11 10:29:46][input.keyword] Processing output of 'action.applescript' with arg ''
[2017-01-11 10:29:46][ERROR: action.applescript] {
    NSAppleScriptErrorAppName = OmniFocus;
    NSAppleScriptErrorBriefMessage = "Unable to convert the string \U201cmessage://<03D12B465157E52C189B6D836173733D254AF6F9@AMX>\U201d to a url. Make sure that the string is a valid URL, including quoting characters that aren't valid in URLs.";
    NSAppleScriptErrorMessage = "OmniFocus got an error: Unable to convert the string \U201cmessage://<03D12B465157E52C189B6D836173733D254AF6F9@AMX>\U201d to a url. Make sure that the string is a valid URL, including quoting characters that aren't valid in URLs.";
    NSAppleScriptErrorNumber = 1;
    NSAppleScriptErrorRange = "NSRange: {1161, 94}";
}
[2017-01-11 10:29:46][action.applescript] Processing output of 'output.notification' with arg ''

applescript

on alfred_script(q)
(*
OmniFocus Selected Mail Messages.applescript
	Copyright (c) 2015 Jonathan 'Wolf' Rentzsch: http://rentzsch.com
	Some rights reserved: http://opensource.org/licenses/mit
  
Pure AppleScript reimplementation of OmniGroup's Clip-o-Tron for OmniFocus.

Hopefully this implementation will be more resilient against OS X, Mail, and OmniFocus updates.
Successfully tested against OS X 10.10.1, OmniFocus 1.10.6, and OmniFocus 2.0.4.

References:
<http://daringfireball.net/2007/12/message_urls_leopard_mail>
<http://forums.omnigroup.com/showthread.php?t=30754>
<http://shawnblanc.net/box/smarter_clip-o-tron.txt>
 *)

tell application "Mail"
	set _sel to the selection
	repeat with _msg in _sel
		set _msgSubject to _msg's subject
		set _msgBody to _msg's content
		set _msgSender to _msg's sender
		set _msgURL to "message://<" & _msg's message id & ">"
		tell application "OmniFocus"
			tell quick entry
				set _task to make new inbox task with properties {name:_msgSubject, note:_msgBody}
				tell note of _task
					insert "From: " & _msgSender & "  Original Message" & (ASCII character 10) & (ASCII character 10) at before paragraphs
					set value of attribute "link" of style of characters -1 thru -17 of first paragraph to _msgURL
				end tell
			end tell
		end tell
	end repeat
end tell

tell application "OmniFocus"
	tell quick entry to open
end tell
tell application "System Events" to keystroke tab
end alfred_script

 

Share this post


Link to post

I use the same script in Mail Act-On and it's working fine for me.

 

Looks like a URL encoding problem from the error messages....is this happening with every message?

 

Usually message:// URLs will have the full domain at the end e.g. @mail.gmail.com and the like but your example only has @AMX which would lead me to think there's something with that particular message that's breaking the script.

 

 

Share this post


Link to post

@sterling Did you ever find a solution? If so, could you post it here?

 

Like yourself, I'd also like to send messages from Mac's Mail app to a new Omnifocus task. At the moment, I use a pretty mundane apple script in Alfred that simply kicks off the Clip-o-Tron from Mail's menu (included below for others that might want something simple). However, I always find myself having to change the titles or wanting to add a context, and I was hoping to tailor something to my needs, like your script above.

 

Thanks for any help you can lend!

 

on alfred_script(q)
if application "Mail" is running then
tell application "Mail" to activate
	delay 0.2
tell application "System Events"
 	   tell process "Mail"
     	   click menu item "OmniFocus 2: Send to Inbox" of menu 1 of menu item "Services" of menu 1 of menu bar item "Mail" of menu bar 1
	end tell
end tell
else
	display notification "To send a message from Mail to OmniFocus, Mail must be open" with title "AI - Not Open"
end if
end alfred_script

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×