Using AppleScript to set a mail message to Plain T

2020-04-11 09:24发布

问题:

I have an AppleScript that nicely collates information and creates an email message with attachments.

I cannot find a way for the script to set the message format to "Plain Text" which is required by the receiving inbox (rather than the default "Rich Text").

Is there an AppleScript way (or trick) to setting the message format to "Plain Text"?

回答1:

I found this question while trying to solve exactly this problem. Eventually I came up with the following solution:

tell application "Mail"
    set newMessage to make new outgoing message 
        with properties {visible:true,
                         subject:"message title",
                         sender:"sender@from.address",
                         content:mailBody}
    tell newMessage
        make new to recipient with properties {address:"mail@recipient.com"}
    end tell
    activate
end tell

tell application "System Events"
    click menu item "Make Plain Text" of ((process "Mail")'s (menu bar 1)'s (menu bar item "Format")'s (menu 1))
end tell

Hopefully someone will find this useful, I know I would have several hours ago!

This is tested on Mail versions 7.3 and 12.4. Newer, or older, versions might need different menu titles.



回答2:

Before the section in your script that creates a message, add this line.

 tell application "Mail" to set default message format to plain text

At the very end of the script add this to reset the value

 tell application "Mail" to set default message format to rich text


回答3:

You can use keyboard shortcut shiftt also to change the message format to plain text:

tell application "System Events" to keystroke "t" using {command down, shift down}

Tested in Mail version 12.4