heard about Hook on MPU 549 and and here I am testing Hook.
I am using Airmail 4.1.5 as main Mail client. The Airmail links are created and can be attached to another object, but they can’t be opened. Then changed the default Mail app Apple Mail, but when opening Hook to copy the link still the Airmail Icon is shown. This link isn’t working either.
I tried this. Selected an email in Airmail 4.1.5 and copied the link with Hook. Selected a file in Finder and Hooked the file to the copied link. Then I selected a different message in Airmail and then quit Airmail. When I selected the file in Finder that I had Hooked to Airmail, and in Hook I selected the email, I saw Airmail launch and then open the email I started with in my first step.
I don’t know if you have a different circumstance, but at least in this small case the Hooking worked.
Sorry that I couldn’t find the same outcome as you.
thank you for trying out.
I figured out, that when changing in the Hook > Preferences > Favorite Apps from Airmail to Mail, then it works for Mail.
In this case I can either copy the link in Mail or also in Airmail, then the applied link will open in Mail. However if Airmail - should it perhaps be Airmail 3 (as the app name is Airmail 3.app in applications - even when version is 4.1.5) - is selected, no mail app is opened.
Perhaps there is an issue with my Airmail installation… Hmm
It was also called Airmail 3 on my Finder even though the App version is Airmail4. I tested and have not been able to replicate your issue either. The fact that you can use Hook’s Copy Link in Airmail suggests Hook is able to control it, so it’s not a permissions issue.
I don’t suppose you have modified Hook > Preferences (window) > Scripts (tab) > Airmail (entry, in left column)) > Open Item (tab) ? There would be a * next to Airmail (entry, in left column).
I wonder whether for some reason you might not have a .airmail folder in [Group Containers](hook://file/nyeXiVwW7?p=bHVjYi9MaWJyYXJ5&n=Group%20Containers) (you can copy and paste that Containers hook:// URL into Spotlight or LaunchBar to get there fast).
Could you please copy paste the following in the Apple Terminal (command line) and send the result to us. (You can send it to me as a private forum message or email support@cogsciapps.com if you prefer not to make it public.) :
ls -alt ~/Library/Group\ Containers|grep airmail
Also, could you please select a different email in AirMail, then try pasting this into a new /Applications/Utilities/Script Editor document, pressing the run button (at top), and let us know the result? It normally should select the message whose URL you gave us; but it seems that it won’t in your case. Running the command may yield a helpful message at the bottom of Script Editor window.
set MessageID to "email://20200814200552.1.0298AF2435C8BB86%40webinarjam.net"
set MessageID to text 9 thru -1 of MessageID
set filePaths to do shell script "find ~/Library/Group\\ Containers/*.airmail/SharedData*/Accounts.plist"
tell application "System Events"
set mailAccounts to {}
repeat with filePath in every paragraph of filePaths
try
set itemNodes to property list items of property list file filePath
repeat with i from 1 to number of items in itemNodes
set itemNode to item i of itemNodes
set mailAccount to value of property list item "mail" of itemNode
if mailAccounts does not contain mailAccount then
set end of mailAccounts to mailAccount
end if
end repeat
end try
end repeat
repeat with a from 1 to length of mailAccounts
set acc to item a of mailAccounts
open location "airmail://message?mail=" & acc & "&messageid=" & MessageID
end repeat
end tell
Thank you for the detailed feedback.
Just sent my feedback to the email support address.
A group container exists with the name ‘2E337YPCZY.airmail’. The terminal finds the same folder. Script editor opens airmail, but not the specific email. When the link is clicked in Apple note, nothing happens but the iCloud spinners turns for 1-2 sec.
And check if there is any email accounts set in those files.
Then please run the following script in Apple’s Script Editor app, and see if it returns any email
accounts and account file content. For privacy, we just want to know if there is any email accounts, not the details.
set filePaths to do shell script "find ~/Library/Group\\ Containers/*.airmail/SharedData*/Accounts.plist"
tell application "System Events"
set pfileContent to ""
set mailAccounts to {}
repeat with filePath in every paragraph of filePaths
try
set itemNodes to property list items of property list file filePath
repeat with i from 1 to number of items in itemNodes
set pfileContent to pfileContent & (read filePath)
set itemNode to item i of itemNodes
set mailAccount to value of property list item "mail" of itemNode
if mailAccounts does not contain mailAccount then
set end of mailAccounts to mailAccount
end if
end repeat
end try
end repeat
repeat with a from 1 to length of mailAccounts
set acc to item a of mailAccounts
set filePaths to filePaths & " " & acc
end repeat
set res to filePaths & " " & pfileContent
end tell
The script error is because there should be \\ (two backslashes) , not just \ (one), after Group in the first line of the script. From your screenshots, it looks like you copied the line that was meant for the Terminal (which has one backslash) into the code that is meant for Script Editor. The script block we provided Airmail 4.1.5 (631): Link not opening for Script Editor, had two…
If you copy it precisely the way it is, it should work. I’ll copy/paste it again here:
set filePaths to do shell script "find ~/Library/Group\\ Containers/*.airmail/SharedData*/Accounts.plist"
tell application "System Events"
set pfileContent to ""
set mailAccounts to {}
repeat with filePath in every paragraph of filePaths
try
set itemNodes to property list items of property list file filePath
repeat with i from 1 to number of items in itemNodes
set pfileContent to pfileContent & (read filePath)
set itemNode to item i of itemNodes
set mailAccount to value of property list item "mail" of itemNode
if mailAccounts does not contain mailAccount then
set end of mailAccounts to mailAccount
end if
end repeat
end try
end repeat
repeat with a from 1 to length of mailAccounts
set acc to item a of mailAccounts
set filePaths to filePaths & " " & acc
end repeat
set res to filePaths & " " & pfileContent
end tell