script copia l'indirizzo email del mittente (s) solo negli appunti

1

Sono un utente di voiceover cieco di mac.

Il nuovo Mail.app rende difficile copiare l'email del mittente. Mi piacerebbe avere uno script che copia solo l'email del mittente, di uno o più messaggi selezionati.

È possibile?

    
posta rossy kk 26.01.2014 - 18:03
fonte

3 risposte

2

Sì, AppleScript lo rende facilmente possibile!

Ecco un AppleScript che può farlo:

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

Copierà i mittenti di posta negli Appunti come segue: John Doe <[email protected]>

Lo stesso script senza i nomi:

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

Emette solo gli indirizzi con un delimitatore space : [email protected] [email protected]

Per il segnale acustico, aggiungi appena beep prima di end tell (come ho già fatto sopra).

    
risposta data 26.01.2014 - 18:25
fonte
0

Due possibili modifiche al codice molto utile di Matthieu:
    1. Puoi farlo pronunciare ogni indirizzo mentre lo trova (se questo è utile) usando il comando say .
    2. Alcuni considerano una buona forma preservare ciò che AppleScript's text item delimiters era prima di cambiarli, quindi ripristinarli alle impostazioni originali, invece di assumere che fosse un carattere nullo ( "" ), specialmente se questo potrebbe essere eseguito mentre altri script sono in esecuzione , poiché è una proprietà 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
    
risposta data 27.01.2014 - 16:14
fonte
0

Aggiornamento alla risposta di Matthieu , per rimuovere i duplicati e aggiungere una nuova riga tra ciascun indirizzo:

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
    
risposta data 09.10.2018 - 15:29
fonte

Leggi altre domande sui tag