1 votos

scriptcopiar sólo la dirección de correo electrónico del remitente al portapapeles

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?

2voto

Satanicpuppy Puntos 4902

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).

0voto

Ashley Mills Puntos 108

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

0voto

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.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