I'm automating Apple Mail and need to somehow extract the HTML being rendered by Apple Mail's webkit. When I use various inspect tools all I get is the accessibility tree. Is it impossible to switch to webview context and extract the HTML elements? I've never used the Obj-c bridge but would that help?
Hey @Big_Rup,
Welcome to the forum!
Unfortunately the answer to your question is no, however there are some possibilities.
This AppleScript will extract the source of the selected message in Mail:
--------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2020/11/10 14:48
# dMod: 2020/11/11 01:27
# Appl: Mail
# Task: Extract the Source of the Selected Message in Apple Mail
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Mail, @Extract, @Source, @Selected, @Message
--------------------------------------------------------
try
tell application "Mail"
set messageSelectionList to selection
if messageSelectionList ≠ {} then
set selectedMessage to item 1 of messageSelectionList
tell selectedMessage
set selectedMessageSource to its source
end tell
return selectedMessageSource
end if
end tell
on error e number n
set e to e & return & return & "Num: " & n
if n ≠ -128 then
try
tell application (path to frontmost application as text) to set ddButton to button returned of ¬
(display dialog e with title "ERROR!" buttons {"Copy Error Message", "Cancel", "OK"} ¬
default button "OK" giving up after 30)
if ddButton = "Copy Error Message" then set the clipboard to e
end try
end if
end try
--------------------------------------------------------
Sadly this method can get really ugly when quoted-printable and other garbage is involved.
Run it in the Script Editor.app to see the result. You'll get the full source including all the headers, and you'll have to parse out what you want.
If this works then great. If not let me know - I've got at least one other idea.
-Chris
Thanks for the sugggestion will try asap