Soy un usuario ciego de voz de mac.
El nuevo Mail.app
dificulta la copia del correo electrónico del remitente. Me gustaría tener un script que copie sólo el correo electrónico del remitente, de uno o varios mensajes seleccionados.
¿Es posible?
Soy un usuario ciego de voz de mac.
El nuevo Mail.app
dificulta la copia del correo electrónico del remitente. Me gustaría tener un script que copie sólo el correo electrónico del remitente, de uno o varios mensajes seleccionados.
¿Es posible?
Sí, AppleScript lo hace posible fácilmente.
Aquí hay un AppleScript que puede hacer eso:
tell application "Mail"
set theSenderList to {}
set theMessages to the selected messages of message viewer 0
repeat with aMessage in theMessages
set end of theSenderList to sender of aMessage
end repeat
set the clipboard to (theSenderList as rich text)
beep
end tell
Copiará los remitentes de correo en el portapapeles de la siguiente manera: John Doe <John.Doe@gmail.com>
El mismo script sin los nombres :
tell application "Mail"
set theSenderList to {}
set theMessages to the selected messages of message viewer 0
repeat with aMessage in theMessages
set end of theSenderList to (extract address from sender of aMessage)
end repeat
set AppleScript's text item delimiters to " "
set the clipboard to (theSenderList as string)
set AppleScript's text item delimiters to ""
beep
end tell
Sólo emite las direcciones con un space
delimitador : john.doe@gmail.com jane.doe@gmail.com
Para el pitido, basta con añadir beep
antes de la end tell
(como ya hice anteriormente).
Una actualización de La respuesta de Matthieu para eliminar los duplicados y añadir una nueva línea entre cada dirección:
tell application "Mail"
set theSenderList to {}
set theMessages to the selected messages of message viewer 0
repeat with aMessage in theMessages
set theSender to sender of aMessage
if theSender is not in theSenderList then
set end of theSenderList to theSender
set end of theSenderList to "
"
end if
end repeat
set the clipboard to (theSenderList as rich text)
beep
end tell
Dos posibles modificaciones al muy útil código de Matthieu:
1. Puedes hacer que hable de cada dirección a medida que la encuentra (si eso es útil) utilizando la función say
comando.
2. Algunos consideran que es una buena forma de preservar lo que AppleScript's text item delimiters
antes de cambiarlos, y luego restablecerlos a la configuración original, en lugar de asumir que era un carácter nulo ( ""
), especialmente si esto podría ejecutarse mientras otros scripts se están ejecutando, ya que es una propiedad global.
tell application "Mail"
set theSenderList to {}
set theMessages to the selected messages of message viewer 0
repeat with aMessage in theMessages
set oneAddress to extract address from sender of aMessage
set end of theSenderList to oneAddress
say "found: " & oneAddress
end repeat
set {prevDelims, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set the clipboard to (theSenderList as string)
set AppleScript's text item delimiters to prevDelims
end tell
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.