Ändra subject i inkommande mail

Tråden skapades och har fått 7 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Danderyd
  • 2008-07-23 13:40

Hej,

På jobbet har vi ett ärendehanteringssystem som skickar ut mail så fort man fått en ny uppgift tilldelad. De ärendena får en subject "Reassign". Det gör att om jag väljer att Mail ska visa inkorgen trådad så hamnar alla ärenden i samma tråd.

Går det att skriva ett AppleScript som ändrar subject i inkomna mail och lägger till kund och ärendenummer? All information finns tydligt på första raden i mailet.

MVH Gabriel

  • Medlem
  • Danderyd
  • 2008-07-23 23:22

Tack Taz_1999. Jag ska göra ett försök att anpassa scriptet - annars får jag se om vi kan anpassa vårt system till att skicka denna info i Subject från början...

Du behöver nästan bara ändra två saker:

1. Att ordet Reassign ersätts med ingenting, dvs tom sträng.

2. Att du läser av första och andra raden ur mailet och låter det utgöra den nya ärenderaden. Det finns en massa kommandon för att komma åt det aktuella meddelandet, och sedan texten i det meddelandet "contents of message så och så" och sedan har Mail stöd för ett antal texthanteringsfunktioner, som tex paragraph, word osv. Man bör kunna skriva något i stil med first word of first paragraph of contents of message så och så, för att läsa av något.

Du vet hur man öppnar ordlistan för ett program?

Lycka till!

Hur gick det med detta?

  • Medlem
  • Danderyd
  • 2008-07-29 11:06

Har inte hunnit börja på det ännu men ska ta det denna vecka... Återkommer så snart jag gjort ett test...

/Gabriel

  • Medlem
  • Danderyd
  • 2008-07-29 13:42

Fixade det med lite pysslande. Fungerade utmärkt efter lite letande i biblioteket efter olika funktioner.

(*
Applescript för att ändra ärenderaden i Mail.app
----------------------------------------------------------------
Ändrar ärenderaden i markerade mail från EPiDesk
Originalkod av Ola [at] intelligentmammals [punkt] se, 2006-07
Modifierad av gabriel [punkt] heijmer [at] cloudnine [punkt] se, 2008-07
*)

on run
	-- Först, plocka fram en lista på markerade meddelanden i Mail.
	-- Här saknas felkontroll om det inte finns några markerade medd.
	tell application "Mail"
		set selected_messages_list to selection
	end tell
	
	-- Loopa igenom de markerade meddelandena och gör detta med varje.
	repeat with message_Item in selected_messages_list
		
		-- Hämta meddelandet ärenderad, innehåll och sändare och 
		-- lagra i varsin variabel
		tell application "Mail"
			set msg_subject to subject of message_Item
			set msg_content to content of message_Item
			set msg_sender to sender of message_Item
		end tell
		
		-- Sätt ihop ny ärenderad genom en subrutin
		-- Första variabeln är befintlig ärenderad.
		-- Andra variabeln är innehållet.
		-- Tredje variabeln är avsändaren.
		set msg_subject to replace_chars(msg_subject, msg_content, msg_sender)
		
		-- Sätt den nya ärenderaden på meddelandet
		tell application "Mail"
			set subject of message_Item to msg_subject
		end tell
		
	end repeat
end run

on replace_chars(msg_subject, msg_content, msg_sender)
	-- Hämta ärendenumret från meddelandets första rad, ord 3
	set case_id to word 3 of msg_content
	-- Sätt samman alla strängar till den nya ärenderaden
	set new_subject to msg_subject & ": " & case_id & " " & msg_sender
	return new_subject
end replace_chars

Vet inte om det är snyggaste lösningen men den fungerar. Enda problemet nu är att jag måste göra om det varje gång Mail syncar med Exchange... :-/

/Gabriel

Kul att du fick det att fungera!

1
Bevaka tråden