Como ha aludido uno de los comentaristas, "obtener el primer mensaje de la bandeja de entrada" probablemente no te devolverá lo que esperas.
Cuando se recuperan los mensajes mediante AppleScript, Mail ordena las cuentas de correo alfabéticamente . Dentro de la bandeja de entrada de cada cuenta, los mensajes se ordenan primero como los más nuevos. Lo que hayas seleccionado en Mail no cambia el orden en que se devuelven a AppleScript.
Así que si tienes las siguientes cuentas y mensajes en la bandeja de entrada que aparecen en Mail en este orden:
- Mi iCloud
- Mensaje del 1/5/16
- Mensaje del 1/10/16
- Mi Gmail
- Mensaje del 1/10/16
- Mensaje del 1/5/16
"obtener el primer mensaje de la bandeja de entrada" devolverá el mensaje con fecha 1/5/16 de la cuenta "Mi Gmail" (la G va antes de la i, el 1/5/16 va antes del 1/10/16).
Supongo que tienes más de una cuenta en Mail.
-
Nombra el buzón específico. Esto siempre establecerá elMensaje como el mensaje más reciente en "Mi Gmail". (El nombre de la cuenta es el mismo nombre que ves en Mail en la lista bajo Inbox).
set theMessage to first message in mailbox "INBOX" of account "My Gmail"
Sin embargo, este es un enfoque inusual, ya que el correo se mueve, por lo que el primer mensaje en su buzón podría convertirse en su segundo mensaje de forma inesperada.
He aquí un par de formas fiables de extraer datos de los mensajes:
-
Utilice mensajes seleccionados (mensajes que has seleccionado haciendo clic en ellos en Mail):
tell application "Mail"
set theMessages to selection
-- This block extracts the topics from the messages
repeat with theMessage in theMessages
set theMessageText to content of theMessage
try
-- Set topic to the string starting just after the hash
set topic to rich text ((offset of "#" in theMessageText) + 1) thru end of theMessageText
-- Truncate the topic at the first space
set topic to rich text 1 thru ((offset of " " in topic) - 1) of topic
on error
-- No topic found in message
set topic to ""
end try
log topic
end repeat
end tell
-
Normas de correo (ejecutar un script en los mensajes que coincidan con ciertos criterios). En Mail, abra Preferencias > Reglas. Cree una nueva regla con la acción "Ejecutar AppleScript". Seleccione "Abrir en el Finder" en el menú que le permite seleccionar el script a ejecutar. Abre el editor de script y guarda el código que aparece a continuación como script en la carpeta que ha abierto Mail. De nuevo en Mail, selecciona tu script guardado como el script a ejecutar:
using terms from application "Mail"
on perform mail action with messages theMessages for rule thisRule
-- This block extracts the topics from the messages
repeat with theMessage in theMessages
set theMessageText to content of theMessage
try
-- Set topic to the string starting just after the hash
set topic to rich text ((offset of "#" in theMessageText) + 1) thru end of theMessageText
-- Truncate the topic at the first space
set topic to rich text 1 thru ((offset of " " in topic) - 1) of topic
on error
-- No topic found in message
set topic to ""
end try
log topic
end repeat
end perform mail action with messages
end using terms from