Je suis en train d'utiliser ce script pour enregistrer un e-mail à partir de l'application Apple Mail:
tell application "Mail"
# prendre le Mail sélectionné
set selectedMessages to selected messages of message viewer 0
set mailToSave to first item of selectedMessages
set resultFile to (choose file name with prompt "Enregistrer l'e-mail sous ..." default name "Mail.eml") as rich text
if resultFile does not end with ".eml" then set resultFile to resultFile & ".eml"
my writeTextToFile(source of mailToSave, resultFile, true)
end tell
on writeTextToFile(theText, theFile, overwriteExistingContent)
try
-- Convertir le fichier en une chaîne de caractères
set theFile to theFile as string
-- Ouvrir le fichier en écriture
set theOpenedFile to open for access file theFile with write permission
-- Effacer le fichier si le contenu doit être écrasé
if overwriteExistingContent is true then set eof of theOpenedFile to 0
-- Écrire le nouveau contenu dans le fichier
write theText to theOpenedFile starting at eof
-- Fermer le fichier
close access theOpenedFile
-- Renvoyer un booléen indiquant que l'écriture a réussi
return true
-- Gérer une erreur d'écriture
on error
-- Fermer le fichier
try
close access file theFile
on error errMsg
log errMsg
end try
-- Renvoyer un booléen indiquant que l'écriture a échoué
return false
end try
end writeTextToFile
Dans la plupart des cas, cela fonctionne parfaitement, mais dans certains cas, les caractères spéciaux sont corrompus dans le fichier exporté. Par exemple:
Un e-mail est affiché correctement dans Mail. Si j'ouvre la source de cet e-mail, je vais obtenir ceci:
MIME-Version: 1.0
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"
X-Mailer: .......
...
für Sie ...
Dans Mail, le texte est correctement affiché en tant que für Sie ...
.
Le fichier exporté contient:
MIME-Version: 1.0
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"
X-Mailer: ...
...
fÌ1Ú4r Sie ...
Si je fais glisser et déposer cet e-mail hors d'Apple Mail, il est enregistré correctement. Y a-t-il un moyen de réaliser ceci avec AppleScript?