Hur kommer jag åt flaggade mail i Mail med applescript?

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Umeå
  • 2003-12-12 21:37

Jag håller på och skriver ett applescript som går igenom alla brevlådor för att fkopiera vissa mail till en särskild "mailfolder". Jag har fått scriptet att fungera så pass att jag kan kopiera mail beroende på 'subjekt', så jag vet att scriptet går igenom alla konton och brevlådor.

Men nu till frågan, hur kan jag med applescript se om ett mail är flaggat? Det är det enda som fattas

Ungefär såhär

tell application "Mail"
	tell account 1
		get (messages whose flagged status is true) of mailbox 2
	end tell
end tell
  • Medlem
  • Umeå
  • 2003-12-12 22:26

Tusen tack, nu funkar det

>Kemppe
Kan du inte visa ditt färdiga script?

  • Medlem
  • Umeå
  • 2003-12-13 01:19
Citat:

Skrevs ursprungligen av Merovech
>Kemppe
Kan du inte visa ditt färdiga script?

Visst kan jag det.

global flaggedfolder

tell application "Mail"
	set localMailboxes to every mailbox
	if ((count of localMailboxes) is greater than 0) then
		my findFlaggedFolder(localMailboxes)
		my handleMailboxes(localMailboxes)
	end if
	set everyAccount to every account
	repeat with eachAccount in everyAccount
		set everyMailbox to every mailbox of eachAccount
		if ((count of everyMailbox) is greater than 0) then
			my handleMailboxes(everyMailbox)
		end if
	end repeat
end tell

on handleMailboxes(theMailboxes)
	tell application "Mail"
		repeat with eachMailbox in theMailboxes
			set boxname to name of eachMailbox as string
			if (boxname is not equal to "Flaggade") then
				my handleFolder(eachMailbox)
			end if
		end repeat
	end tell
end handleMailboxes

on handleFolder(theFolder)
	tell application "Mail"
		duplicate (messages whose flagged status is true) of theFolder to flaggedfolder
	end tell
end handleFolder

on findFlaggedFolder(theMailboxes)
	tell application "Mail"
		repeat with eachMailbox in theMailboxes
			set boxname to name of eachMailbox as string
			if (boxname is equal to "Flaggade") then
				set flaggedfolder to eachMailbox
			end if
		end repeat
	end tell
end findFlaggedFolder
  • Medlem
  • Umeå
  • 2003-12-13 01:22

För att använda scriptet så måste man skapa en brevlåda med namn Flaggade. Eller så väljer man ett annat namn på brevlådan och byter ut 'Flaggade' i koden mot det valda namnet (två ställen).

  • Medlem
  • Umeå
  • 2003-12-13 01:43

Jag kan ju passa på att fråga en sak till (då jag sitter och skriver ett nytt script till Mail). Om jag har två referenser, eller vad man kallar det i applescript, till ett och samma mail. Hur kan jag ta reda på att de refererar till samma mail?

jag vet att jag är extremt obegåvad när det gäller att läsa andras script, speciellt när de innehåller många variabler och handlers, men om jag fattar saker rätt så är det enda du vill göra att kopiera alla flaggade meddelanden till en viss mapp –_stämmer det?

I så fall så borde ju någonting i den här stilen räcka:

tell application "Mail"
	set myTargetBox to mailbox 1 whose name is "flagged"
	repeat with i in accounts
		set theSourceBoxes to (mailboxes whose name is not "flagged")
		repeat with j in theSourceBoxes
			duplicate (messages whose flagged status is true) of j to myTargetBox
		end repeat
	end repeat
end tell

  • Medlem
  • Umeå
  • 2003-12-13 10:58

Det är möjligt att ditt script gör precis det mitt gör. Det här var det scriptet jag skrivit med applescript. Men jag tackar för komentaren. Vet du möjligtvis om nån bra dokumentation till applscript? Det jag saknar mest är väl nån dokumentation där alla fördefinierade saker finns beskrivna. T.ex. det där med:

messages whose flagged status is true

är ju inte det lättaste att gissa sig till. Det tar ju lite tid att skriva sina script om man ska sitta och gissa, sen blir de väl inte särskilt snygga heller

Citat:

Skrevs ursprungligen av Kemppe
Det är möjligt att ditt script gör precis det mitt gör. Det här var det scriptet jag skrivit med applescript. Men jag tackar för komentaren. Vet du möjligtvis om nån bra dokumentation till applscript? Det jag saknar mest är väl nån dokumentation där alla fördefinierade saker finns beskrivna. T.ex. det där med:

messages whose flagged status is true

är ju inte det lättaste att gissa sig till. Det tar ju lite tid att skriva sina script om man ska sitta och gissa, sen blir de väl inte särskilt snygga heller

Som jag sa, jag är väldigt dålig på att läsa andras script, så det var inte en retorisk fråga, utan jag frågade för att veta om jag missförstått.

Jag uppfattade ditt script som skrivet med goda allmäna programmeringskunskaper, men kanske lite mindre vana av just AppleScript.

De där språkspecifika sakerna, som "filter" (alltså "whose"-satser) är ju då inte så lätta att känna till

Från Apples hemsida kan man ladda ner "Apple Script Laguage Guide" men den är inte så bra för sträckläsning precis, snarare som uppslagsbok. Det man oftast saknar är en slags "best practice".

En bra hjälp är att köpa Script Debugger från www.latenightsoftware.com , åtminstone om man gör mer än att skriva något enstaka script – den gör verkligen livet lättare och är dessutom ganka billig, åtminstone om man värdesätter sin tid. Att förstå objektsmodellen för ett program är en dröm med Script Debugger jämfört med Apples egen redigerare.

På Apples och Adobes webbforum finns också flera bra resurser om AppleScript

  • Medlem
  • Umeå
  • 2003-12-13 11:53
Citat:

Jag uppfattade ditt script som skrivet med goda allmäna programmeringskunskaper, men kanske lite mindre vana av just AppleScript.

Jo, lite ovana kan man säga. Såg nu att jag skrivit lite fel i mitt tidigare inlägg. Det jag skulle säga tidigare var just det att detta var första script jag skrivit med applescript. Syntaxen är ju inte direkt likt något annat språk jag programmerat i.

Jag har iaf tankat hem 'applescript language guide' nu, vilken jag tror kommer till nytta. Och den där Script Debugger borde kanske vara något att tänka på om man nu börjar skriva lite mer och större scripts med just applescript.

Tack för all hjälp.

  • Medlem
  • International user
  • 2003-12-13 12:45

Angående AppleScript information fanns det ju en AppleScript skola i PDF-form som det länkades till från 99mac för ett bra tag sedan. Du borde kunna hitta länken genom lite sökning här på forumet.

Lycka till.

1
Bevaka tråden