【问题标题】:Malfunction in AppleScript from eHow to improve iCal & Outlook compatabilityAppleScript 中的故障以及如何提高 iCal 和 Outlook 的兼容性
【发布时间】:2012-11-13 12:44:03
【问题描述】:
eHow 有一篇关于一些 Applescript 的文章,该文章假设可以在 Outlook 中正确设置 iCal 邀请格式,而不是发送 ICS 文件。
http://www.ehow.com/how_5887667_send-ical-invites-outlook.html
但是,当我按照说明进行操作时(减去 HTML 标记),在单击编译后,会出现以下关于 Tell Mail 命令的错误:
“语法错误:应为“,”或“}”,但找到了标识符”
整个脚本都使用了相同的命令,但由于某种原因,它只是在这个地方有问题。如果我删除它,我会收到错误“Expected """ by found end of script"
我对 AppleScript 一无所知 - 只是想使 iCal 可用于专业用途。
【问题讨论】:
标签:
outlook
applescript
icalendar
【解决方案1】:
取自您的文章引用的链接:
Mac OS X Hints
on send_mail_sbrp(subjectLine, messageText, myrecipient, invitationPath)
set pfile to POSIX file invitationPath
set myfile to pfile as alias
try
-- define a carriage return
set cr to (ASCII character 13) & (ASCII character 10)
-- retrieve the user's name and e-mail
set listOfAccounts to {}
tell application "Mail"
repeat with oneAccount in every account
set listOfAccounts to listOfAccounts & ¬
{"\"" & (get full name in oneAccount) & "\" <" & ¬
(get email addresses in oneAccount) & ">"}
end repeat
end tell
if ((get length of listOfAccounts) is 1) then
set theAccountTouse to get first item of listOfAccounts
else
set theAccountTouse to ¬
choose from list listOfAccounts ¬
default items (get first item of listOfAccounts) ¬
with prompt ¬
¬
"Please select which mail account to send the invitation from:" without multiple selections allowed and empty selection allowed
end if
-- open and read the iCal event file to insert into an e-mail
set myEventFileHandle to ¬
open for access myfile without write permission
set myEventFileContent to read myEventFileHandle
close myEventFileHandle
-- pre-pend mail headers to the event contents
set myNewEmailText to ¬
"Subject: " & subjectLine & cr & ¬
"From: " & theAccountTouse & cr & ¬
"To: " & myrecipient & cr & ¬
"content-class: urn:content-classes:calendarmessage" & cr & ¬
"Content-Type: text/calendar;" & cr & ¬
" method=REQUEST;" & cr & ¬
" name=\"meeting.ics\"" & cr & ¬
"Content-Transfer-Encoding: 8bit" & cr & cr & ¬
myEventFileContent
-- create a random event file name
set tempMailName to (random number from 1 to 1000000) & ".ics"
set aliasTempMail to "/tmp/" & tempMailName
-- write the new e-mail to a temp file
set myEventFileHandle to ¬
open for access (POSIX file aliasTempMail as string) with write permission
write myNewEmailText starting at 1 to myEventFileHandle
close myEventFileHandle
-- use SENDMAIL to send the file with proper headers
do shell script "sendmail < " & aliasTempMail
-- delete the temp file
do shell script "rm " & aliasTempMail
on error errMsg
display dialog errMsg
end try
end send_mail_sbrp