1 votes

script copier l'adresse e-mail du ou des expéditeurs uniquement dans le presse-papiers.

Je suis un utilisateur aveugle de voix-off sur mac.

Le nouveau Mail.app rend difficile la copie de l'email de l'expéditeur. Je voudrais avoir un script qui copie uniquement l'email de l'expéditeur, d'un ou plusieurs messages sélectionnés.

Est-ce possible ?

2voto

Matthieu Riegler Points 20160

Oui, AppleScript permet de le faire facilement !

Voici un AppleScript qui peut le faire :

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

Il copiera les expéditeurs de courrier dans le presse-papiers comme suit : John Doe <John.Doe@gmail.com>


Le même script sans les noms :

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

Il ne sort que les adresses avec un space délimiteur : john.doe@gmail.com jane.doe@gmail.com


Pour le bip, il suffit d'ajouter beep avant le end tell (comme je l'ai déjà fait ci-dessus).

0voto

Deux modifications possibles au code très utile de Matthieu :
1. Vous pourriez faire en sorte qu'il parle de chaque adresse au fur et à mesure qu'il la trouve (si cela est utile) en utilisant l'option say commandement.
2. Certains considèrent qu'il est de bon ton de préserver ce qui AppleScript's text item delimiters avant de les modifier, puis de les restaurer aux paramètres originaux, au lieu de supposer qu'il s'agissait d'un caractère nul ( "" ), surtout si cela peut s'exécuter pendant que d'autres scripts sont en cours d'exécution, puisqu'il s'agit d'une propriété globale.

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

0voto

Ashley Mills Points 113

Une mise à jour de La réponse de Matthieu pour supprimer les doublons et ajouter une nouvelle ligne entre chaque adresse :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X