2 votos

Uso de AppleScript para abrir Mail por MessageID

Usando el AppleScript de abajo no puedo abrir el ID del mensaje. Este mismo ID de mensaje está en una nota en mi aplicación Recordatorios y al hacer clic en el enlace funciona correctamente allí.

set emailID to "message://<DB43DAF1-7B87-4DE5-99DB-EC11CB0F6FF7@gmail.com>"

tell application "Mail"
    open location emailID
end tell

Me aparece el error emergente

La operación no pudo completarse.

(MCMailErrorDomain error 1030.)

Mail no ha podido abrir la URL "(null)".

He investigado ese código de error pero las respuestas no parecen aplicables. Además, al eliminar la palabra "location" de mi AppleScript, Mail se abre pero con un nuevo correo electrónico en blanco.

Cualquier ayuda para conseguir que este script abra realmente el correo electrónico con ese ID sería muy apreciada.

2voto

user3439894 Puntos 5883

Mail no es lo suficientemente inteligente como para decirle que abra un documento sólo por su message id en la forma en que lo intentas hacer. Tienes que decirle a Mail dónde buscarlo, como en qué buzón está dentro.

El siguiente ejemplo me funcionó cuando MessageID estaba configurado en uno en mi Bandeja de entrada utilizando su propio message id sin embargo, en este ejemplo estoy usando el message id que se muestra en su OP.

set MessageID to "DB43DAF1-7B87-4DE5-99DB-EC11CB0F6FF7@gmail.com"

tell application "Mail"
    activate
    open (first message of inbox whose message id = MessageID)
end tell

Tenga en cuenta que el ejemplo código anterior es limitado en el sentido de que no atrapa con gracia un error Así pues, el ejemplo código abajo añade un try declaración con un error declaración para manejar un error con gracia.

set MessageID to "DB43DAF1-7B87-4DE5-99DB-EC11CB0F6FF7@gmail.com"

tell application "Mail"
    activate
    try
        open (first message of inbox whose message id = MessageID)
    on error eStr number eNum
        display dialog eStr & " Number: " & eNum buttons {"OK"} default button 1
        return
    end try
end tell

0 votos

Muchas gracias. Estos correos electrónicos estarán en mi buzón de correo electrónico, así que simplemente cambié la "bandeja de entrada" por el "buzón de correo enviado" y ya está. No puedo agradecerles lo suficiente. Me ha ahorrado bastante tiempo.

0 votos

Parece que también hay un identificador "id" directo que el diccionario también indica que es único, ¿hay algún inconveniente en utilizarlo?

2voto

graham bing Puntos 21
set emailID to "message://<DB43DAF1-7B87-4DE5-99DB-EC11CB0F6FF7@gmail.com>"

tell application "Mail"
    open location emailID
end tell

open location no es un comando en el diccionario Mail AppleScript. Su script está intentando utilizar open en la variable "ubicación". Como no existe ninguna variable llamada "location", estás llamando a open en una variable NULL, de ahí el mensaje de error.

set emailID to "message://<DB43DAF1-7B87-4DE5-99DB-EC11CB0F6FF7@gmail.com>"

tell application "Mail"
    open emailID
end tell

open está en el diccionario de AppleScript de Mail, pero toma un archivo o una lista de archivos como parámetro, por lo que una URL message:// no funciona con él.

Esto es lo que realmente quieres:

set emailID to "message://<DB43DAF1-7B87-4DE5-99DB-EC11CB0F6FF7@gmail.com>"
open location emailID

tell application "Mail"
    activate
end tell

open location llamado fuera de cualquier tell application abrirá cualquier URL con cualquier aplicación asignada al esquema de URL. El correo está asignado a message:// así que funcionará como se espera.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X