Spørg Script Doctor: Løsning af Mail-problemer

click fraud protection

AppleScript er et fantastisk værktøj til at automatisere de apps, du bruger dagligt på din Mac—hvis du kan finde ud af den rigtige kode. Vi er her for at hjælpe: Vi har bedt scripting- og Automator-ekspert Ben Waldie om at løse nogle læserproblemer ved hjælp af AppleScript. Tanken er ikke bare at give specifikke løsninger til specifikke problemer, men også at demonstrere nogle generelle principper og giv eksempler på scripts, som du med lidt fidus kan tilpasse for at løse en masse andre også problemer. Først: Et par spørgsmål om Mail. Tænd AppleScript Editor (/Applications/Utilities), og følg med.

Q: Jeg har tonsvis af postkassemapper i Mail, nogle af dem er indlejret flere niveauer dybt. I årenes løb har jeg lagt tusindvis af beskeder i dem, hvoraf nogle aldrig har markeret som læst. Er der en måde at gå gennem alle disse mapper og markere alle meddelelser som læst?

Absolut. Du vil bede Mail om at indstille læsestatusattributten for hver ulæst besked i din indbakke, lokale postkasser og postkasser på din mailserver til

falsk. Vær dog forberedt: Afhængigt af antallet af beskeder og postkasser, du har, kan denne procedure tage et stykke tid at køre. Og da individuelle AppleScript-kommandoer timeout, hvis de ikke afsluttes inden for 2 minutter, får du muligvis også en fejl. Derfor er det en god idé at vedlægge dit manuskript i en timeout-indpakning for at forhindre sådanne fejl. Scriptet nedenfor tillader hver handling op til 5 minutter at afslutte; Øg gerne timeout-perioden, hvis det er nødvendigt.

--Tillad op til 5 minutter med timeout på 300 sekunder fortæl applikationen "Mail" -- Behandle alle ulæste beskeder i indbakken sæt læsestatus for hver besked i indbakken, hvor dens læsestatus = falsk til sand -- Behandl alle ulæste beskeder på din lokale Mac sæt læsestatus for hver besked i hver postkasse, hvor dens læste status = falsk til sand -- Behandle alle ulæste beskeder på din mailserver indstillet læsestatus for hver besked i hver postkasse på hver konto, hvor dens læste status = falsk til sand end tellend tiden er gået

Spørgsmål: Af hensyn til arkivering på arbejdet er jeg blevet bedt om at udskrive tusindvis af mail-e-mail-beskeder i PDF-format. Hvordan kan jeg automatisere det?

Desværre har Mail ikke indbygget AppleScript-understøttelse til at gemme en besked som PDF, så løsningen er ikke så enkel, som den måske ser ud til. Men det er bestemt muligt. Tricket er at bruge noget UI-scripting til at omgå begrænsningen. Gå først til indstillingen Tilgængelighedssystem, og sørg for at Aktiver adgang for hjælpeenheder afkrydsningsfeltet er markeret; UI-scripting virker ikke, medmindre denne indstilling er slået til.

Dette script gemmer den forreste åbnede besked som en PDF. For at behandle flere meddelelser kan du udvide scriptet ved at pakke det ind i en gentagelsesløkke og tilføje en vis fejlbeskyttelse. ( Her er et manuskript der gemmer alle indbakkemeddelelser som PDF'er.)

fortæl applikationen "Systemhændelser" fortæl proces "Mail" - Bring e-mail til fronten sat forrest til sand - Vælg menupunktet Udskriv klik (første menupunkt i menuen "Filer" på menulinje 1, hvis navn begynder med "Udskriv") fortæl vindue 1 -- Vent indtil udskriftsarket vises gentag indtil ark 1 eksisterer slut gentag fortæl ark 1 -- Klik på PDF-knappen klik på menuknappen "PDF" -- Vælg Gem som Klik på PDF-menupunkt (første menupunkt i menu 1 på menuknappen "PDF", hvis navn begynder med "Gem som PDF") -- Vent indtil gem som ark vises gentag indtil ark 1 eksisterer afslut gentag fortæl ark 1 -- Naviger til skrivebordets tastetryk "D" ved at bruge kommandoen ned -- Indtast et navn til PDF-tastetrykket "Min PDF.pdf" -- Klik på knappen Gem klik på knappen "Gem" ende tell end tell end tell end tellend fortælle

Husk, at dette script er knyttet til Mails grænseflade, og at det forventer, at visse menuer, knapper og vinduer eksisterer. Hvis Apple flytter rundt på tingene i en fremtidig version af OS X, skal du muligvis foretage nogle justeringer af scriptet.

Q: Når jeg er på kontoret, forbinder jeg min MacBook Air til en ekstern skærm, som jeg så bruger som min primære skærm; Air-skærmen er primært til min kalender og mail. Jeg ville elske at have et script, som jeg kan køre, når jeg ankommer på arbejde, som automatisk flytter disse programvinduer til Air-skærmen og ændrer størrelsen på dem. Kan det lade sig gøre?

Sikkert. Når du er på kontoret, skal du flytte dine kalender- og mailvinduer til Air-skærmen og placere dem, hvor du vil have dem. Nu er du klar til at fange deres grænser (position og størrelse). Kør hvert af følgende scripts i AppleScript Editor. De returnerer grænserne i den nederste resultatrude; notere resultaterne.

-- For at få kalendervinduets position og størrelse fortæl applikationen "Kalender" returgrænser for forreste vinduesende fortæl
-- For at få Mail-vinduets position og størrelse fortæl applikationen "Mail" returgrænser for frontbesked viewerend fortæl

Lad os sige, at det første script returnerer værdierne {-1426, 102, -491, 930}, mens den anden vender tilbage --> {-955, 100, -7, 845}. Sæt disse tal ind i scriptet nedenfor. Når du kører scriptet, vil det ændre størrelsen og omplacere vinduerne i overensstemmelse hermed. Gem scriptet som et program, og træk det til din Dock. Når du er på kontoret, skal du bare klikke på det for at nulstille vinduerne. Du vil måske overveje at skrive en anden version af scriptet for at flytte dem, når du bruger MacBook'ens skærm alene.

-- For at indstille kalendervinduets position og størrelse fortæl applikationen "Kalender" skal du sætte grænserne for frontvinduet til {-1426, 102, -491, 930}end fortæl-- For at indstille Mail-vinduets position og størrelse, skal du angive grænserne for frontmeddelelsesfremviseren til {-955, 100, -7, 845}end fortælle

Har du et problem, som Script Doctor kan hjælpe med? Send dem til [email protected].

Opdateret 29/10/12 16:45 PT for at rette den pågældende redigeringsfejl vedrørende: udskrivning til PDF'er.

  • Apr 17, 2023
  • 99
  • 0
instagram story viewer