Come Inviare Inviti iCal a Outlook
Inviando inviti con iCal di Apple, il destinatario riceve email con allegato .ics per aggiungere evento al calendario e accettare/rifiutare. Inviando a utenti Outlook, la funzionalità si perde nella traduzione e non è formattata/acceduta correttamente. Modificare come iCal invia inviti, seppur arduo, migliora interazione Mac-PC.
Passaggio 1
Apri cartella Applicazioni. Vai a iCal. Clic destro (Control-clic) su icona iCal e seleziona "Mostra contenuto pacchetto".
Passaggio 2
Naviga in contenuti iCal a "Risorse". Dentro cartella "Risorse", trova "Mail.applescript".
Passaggio 3
Evidenzia "Mail.applescript". Da barra menu, seleziona "Modifica" > "Copia". Sul Desktop, incolla ("Modifica" > "Incolla") il file come backup. Torna all'originale "Mail.applescript".
Passaggio 4
Clic destro sul file e seleziona "Apri con AppleScript". Si aprirà Editor AppleScript.
Passaggio 5
Naviga circa a metà script all'intestazione "on send_mail_sbrp(subjectLine, messageText, myrecipient, invitationPath". Evidenzia l'intera sezione da quell'intestazione a "end send_mail_sbrp" e premi "Canc". (Non preoccuparti, hai fatto backup al passaggio 3).
Passaggio 6
Evidenzia, copia e incolla l'intera voce seguente in AppleScript al posto di quella cancellata al passaggio 5:
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
Passaggio 7
Seleziona "Compila" dalla barra navigazione. Seleziona "Salva" ed esci da AppleScript.
Passaggio 8
Invia un invito iCal. L'utente Windows con Microsoft Outlook riceverà ora correttamente i tuoi inviti iCal.
Avvertenza
Sii estremamente cauto modificando AppleScript. Se hai fatto errore, sostituisci "mail.applescript" nella cartella Risorse iCal con quello salvato sul desktop, e ricomincia dall'inizio.