Estoy usando este script para guardar un correo desde la aplicación Apple Mail:
tell application "Mail"
# take the selected Mail
set selectedMessages to selected messages of message viewer 0
set mailToSave to first item of selectedMessages
set resultFile to (choose file name with prompt "Speichere E-Mail unter ..." 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
-- Convert the file to a string
set theFile to theFile as string
-- Open the file for writing
set theOpenedFile to open for access file theFile with write permission
-- Clear the file if content should be overwritten
if overwriteExistingContent is true then set eof of theOpenedFile to 0
-- Write the new content to the file
write theText to theOpenedFile starting at eof
-- Close the file
close access theOpenedFile
-- Return a boolean indicating that writing was successful
return true
-- Handle a write error
on error
-- Close the file
try
close access file theFile
on error errMsg
log errMsg
end try
-- Return a boolean indicating that writing failed
return false
end try
end writeTextToFile
En la mayoría de los casos funciona perfectamente, pero en algunos casos los caracteres especiales se rompen en el archivo exportado. Por ejemplo:
Un correo se muestra correctamente en Mail. Si abro el origen de este correo me sale esto:
MIME-Version: 1.0
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"
X-Mailer: .......
...
für Sie ...
En Mail el texto se muestra correctamente como für Sie ...
.
El archivo exportado contiene:
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 arrastro y suelto este correo desde Apple Mail, se guarda correctamente. ¿Hay alguna manera de lograr esto con AppleScript?