我正在尝试通过Mail.app从Cocoa应用程序发送html电子邮件。我想在Mail.app中打开新邮件,包括主题,收件人,并添加带有链接和其他内容的HTML Body。但找不到这样做的方法。 我已经尝试过Scripting Bridge,但MailOutgoingMessage类没有内容类型,我可以用纯文本添加内容。
试过AppleScript,就像这样:
set htmlContent to read "/Path/index.html"
set recipientList to {"mail@mail.com"}
tell application "Mail"
set newMessage to make new outgoing message with properties {subject:"qwerty", visible:true}
tell newMessage
make new to recipient at end of to recipients with properties {address:"mail@s.com"}
set html content to htmlContent
--send
end tell
end tell
此代码使用html发送电子邮件,仅在我正在更改时才发送 - 发送。但是我需要在用户做出一些更改之后发送信件。
答案 0 :(得分:5)
要回顾问题:使用AppleScript创建包含交互式编辑的HTML内容的消息不起作用(从OS X 10.9开始) .2):新消息表单提供了一个空正文。
这应该被认为是错误,我鼓励每个人在http://bugreport.apple.com - 警告时让Apple知道:html content
{{1} } class属性在message
,Mail.sdef
的AppleScript字典中定义而不是,因此可能无法正式支持分配HTML。
有一个解决方法,但它并不漂亮:
实施此功能非常具有挑战性,因为需要一些变通方法。但是下面的代码尝试最难:
注意:由于代码使用GUI脚本,因此必须启用辅助设备访问(通过Mail.app
)运行此代码的应用程序(例如,System Preferences > Security & Privacy > Accessibility
或,如果通过AppleScript Editor
,osascript
)运行。
Terminal.app
答案 1 :(得分:1)
目前尚不清楚你在寻找什么,但我会尽力提供一些帮助。
如果您对send
发表评论,则该邮件应该已在Mail.app中打开,等待进一步编辑和发送。
通过添加第save newMessage
行,它将保存到草稿文件夹中。用户可以打开它并随时继续编辑。如果您想从应用程序中实际发送草稿,请使用:
set sendMessage to first message of drafts mailbox
send sendMessage
祝你好运!
答案 2 :(得分:1)
我没有看到你需要在发送之前编辑邮件,所以我之前的回答是错误的。这一次应该是正确的。
基本上
以下是代码:
set textSubject to "HTML Test"
set toAddress to "john.doe@gmail.com"
set toName to "John Doe"
tell application "Mail"
do shell script "cat ~/Documents/RTF\\ File.rtf | textutil -stdin -stdout -convert rtf | pbcopy"
set refMessage to make new outgoing message with properties {name:toName, address:toAddress, subject:textSubject, visible:true}
tell refMessage
make new to recipient at end of to recipients with properties {name:toName, address:toAddress}
end tell
end tell
tell application "System Events"
tell application process "Mail"
set frontmost to true
set value of attribute "AXFocused" of scroll area 4 of window textSubject to true
end tell
keystroke "v" using {command down}
end tell
同样,这在Snow Leopard上运作良好
希望有所帮助。