Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Mail-Kontrolle, Dateien anlegen, Dateinamen prüfen

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
grenzli
•-->
•-->


Anmeldedatum: 05.02.2010
Beiträge: 39

BeitragVerfasst am: 25.03.2012 - 22:59    Titel: Mail-Kontrolle, Dateien anlegen, Dateinamen prüfen Antworten mit Zitat

Hallo zusammen,

unsere kleine Fabrik hat einen neuen Zulieferer, der uns eine Mail schickt, wenn er einen Auftrag anlegt (im Betreff steht "... New Job ... ") und eine Schickt, wenn er diesen Job fertig hat (im Betreff steht "...Delivered...")

Da es in letzter öfter vorkam, dass die Aufträge nicht bearbeitet bzw zur Verfügung gestellt wurde, kam ich auf die Idee ein einfaches speziell auf diesen Kunden und Mail-System zugeschnittenes Überprüfungssystem zu basteln.

Die Idee:
Die eintreffenden Mails werden in einen Ordner als Textdateien gespeichert, aus dem Betreff die Auftragsnummer extrahiert und als Name der Textdatei zusammen mit einem "raus" und "rein" für Auftrag angelegt und Ausgeführt benutzt.

Der Ordnerinhalt sieht ungefähr so aus:

Z25598-raus.txt
Z25611-raus.txt
Z25667-raus.txt
Z25923-raus.txt
Z25978-raus.txt
Z25984-raus.txt
Z25994-raus.txt
Z25994-rein.txt
Z25997-raus.txt
Z25997-rein.txt
Z26008-raus.txt
Z26008-rein.txt
Z26015-raus.txt
Z26015-rein.txt
Z26036-raus.txt
Z26036-rein.txt
Z35889-raus.txt

Wenn der Auftrag ausgeführt ist, gibt es folglich zb.

Z26008-raus.txt
Z26008-rein.txt


Was mir noch fehlt, ist folgendes:
Best of wäre evtl eine Ordneraktion, die die doppelten Dateien entweder in einen "Ready"-Ordner verschiebt oder einfach löscht, dann blieben im besten fall nur noch die ...-raus.txt Dateien, die man dann von Zeit zu Zeit abfragen könnten beim Zulieferer.

Mein Skript sieht bisher noch so aus, dass er nur die ausgewählten NAcrichten aus Mail in den Ordner schreibt, aber das müsste über eine Regel auch für die neu eintreffenden Nachrichten einsetzbar sein.

Was noch fehlt, wäre also die Ordneraktion ...

Da bin ich völlig blank.

Man könnte evtl die Dateinamen (ohne rein/raus) in eine Liste schreiben, die man dann bei neu eintreffenden Dateien überprüft und wenn die Auftragsnummer schon drin ist, müsste er aber beide Dateien löschen, da weiß ich aber nicht, wie man wieder an die Datei kommt, da es sein kann, dass sich neue Dateien auch weiter oben einsortieren, damit also die stelle in der Liste nicht mehr mit der Datei übereinstimmt, die man zb gestern in die liste geschrieben hat. (Ganz davon abgesehen, dass ich nicht weiß, wie man eine Liste in einer Datei speichert)
....

Die Ideen sind da, aber das Werkzeug ist nicht komplett vorhanden :/
Und wer bis hier her gelesen hat, dem wünsche ich einen Lottogewinn!


Code:

set theOutputFolder to (choose folder with prompt "Select an output folder:") as string
tell application "Mail"
set theSelectedMessages to selection
set theMessageCount to count theSelectedMessages
repeat with a from 1 to theMessageCount
--display dialog "Processing message " & a & " of " & theMessageCount giving up after 1 with icon note
set theMessageContent to content of item a of theSelectedMessages
set BETREFF to subject of item a of theSelectedMessages as text
if BETREFF contains "New Job" then
set wohin to "raus"
else
set wohin to "rein"
end if
set anzahl to count of characters of BETREFF
set artikelnummer to text -1 thru -6 of BETREFF
set theArchivePath to theOutputFolder & artikelnummer & "-" & wohin & ".txt" as string
set theArchiveFile to open for access theArchivePath with write permission
set eof of theArchiveFile to 0
write theMessageContent to theArchiveFile
close access theArchiveFile
end repeat
end tell
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 26.03.2012 - 15:18    Titel: Antworten mit Zitat

Wenn das nur auf Deinem Mac laufen soll:
Dann erspare Dir doch das Anlegen der Dateien und belasse die Informationen in Mail.
Lege Dir einfach einen Ordner an "Jobs-Zulieferer XY" und:
Lasse die neuen Emails von dem Lieferanten per Regel rot einfärben und in diesen Email-Ordner verschieben. Im Anschluss startet die Regel ein AppleScript, welches durch alle rot eingefärbten Nachrichten, in deren Betreff delivered steht, geht und saugt sich daraus die Job-Ids.
Im Anschluss färbt das Skript alles Emails mit diesen Job-Ids grün.
Nun nach Label/Etikette sortieren und du bekommst einen direkten Überblick im Apple Mail welches Jobs noch nicht abgeschlossen wurden mit Farbcode.

So werden die Infos nicht redundant abgelegt und Du machst Dich nicht von unzuverlässigen Ordner-Aktionen abhängig.


Code:
tell application "Mail"
   set themailbox to mailbox "bla"
   --alle Nachrichten von fertigen Jobs die noch nicht vom Skript berücksichtigt wurden
   set newclosedMessages to every message of themailbox whose subject contains "delivered" and background color is red
   set newclosedJobIDs to {}
   repeat with newclosedMessage in newclosedMessages
      set newclosedJobIDs to newclosedJobIDs & ((characters -1 through -6 of (subject of newclosedMessage as string)) as string)
   end repeat
   repeat with newclosedJobID in newclosedJobIDs
      set themessages to (every message of themailbox whose subject contains (newclosedJobID as string))
      repeat with themessage in themessages
         set background color of themessage to green
      end repeat
   end repeat
end tell

_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
grenzli
•-->
•-->


Anmeldedatum: 05.02.2010
Beiträge: 39

BeitragVerfasst am: 26.03.2012 - 19:22    Titel: Antworten mit Zitat

Oh, spannend!

Da muss ich mal drüberschauen und meld mich, wie's funktioniert!!

Danke auf jeden Fall schonmal.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grenzli
•-->
•-->


Anmeldedatum: 05.02.2010
Beiträge: 39

BeitragVerfasst am: 26.03.2012 - 21:55    Titel: Antworten mit Zitat

Hey nochmal,

soweit schaut's ganz gut aus,
das einzige Problemchen was noch besteht ist die Sortierung nach der Farbe, habe mir alle Spalten oben einblenden lassen, aber nach Farbe kann ich nicht sortieren, die hab ich irgendwie nicht zur Auswahl.

(Was ich vergaß zu erwähnen ist, dass ich mit 10.7 arbeite)

Kann's daran liegen, oder hab ich nur irgendwas übersehn?

Und gibt's vielleicht die Möglichkeit, das Postfach nicht lokal zu benutzen, sondern ein IMAP-Postfach?

Und wie kann ich mich erkenntlich zeigen? Gibts sowas wie ne Amazon-Wunschliste oder ähnliches?

Grüße
Sebastian.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 26.03.2012 - 23:45    Titel: Antworten mit Zitat

Sorry, mein Fehler... dann muss es wohl die Etikette sein, nach der kann man sortieren.
Und da Du 10.7 hast, kann man sogar die mehrfarbig gestalten, also hier der Code etwas angepasst... die Regel muss in dem Beispiel die betreffende neue Email nur verschieben und das rote flag setzen, die Hintergrund-Farbe ist nicht wichtig, dürfte es aber ggf. etwas übersichtlicher machen.


Code:
tell application "Mail"
   set themailbox to mailbox "bla"
   --alle Nachrichten von fertigen Jobs die noch nicht vom Skript berücksichtigt wurden
   set newclosedMessages to every message of themailbox whose subject contains "delievered" and flag index is 0 --rotes Flag
   set newclosedJobIDs to {}
   repeat with newclosedMessage in newclosedMessages
      set newclosedJobIDs to newclosedJobIDs & ((characters -1 through -6 of (subject of newclosedMessage as string)) as string)
   end repeat
   repeat with newclosedJobID in newclosedJobIDs
      set themessages to (every message of themailbox whose subject contains (newclosedJobID as string))
      repeat with themessage in themessages
         set background color of themessage to green
         set flag index of themessage to 3 --Grünes Flag
      end repeat
   end repeat
end tell

_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 27.03.2012 - 00:00    Titel: Antworten mit Zitat

acho so... wegen des Postfaches (die Flags werden aber wohl nicht mit übernommen, falls jemand anderes den gleichen IMAP-Ordner in seinem Mail ansieht...)
die Referenz zu einem IMAP Postfach sieh folgendermaßen aus:
Code:
set themailbox to mailbox "Lager"  of account "Lager-Account"

bzw. bei Unter-Ordnern (Lieferant-XY):
Code:
set themailbox to mailbox "Lieferant-XY" of mailbox "Lager"  of account "Lager-Account"

Wenn das IMAP-Postfach auch von anderen Mitarbeitern abonniert wird, würde ich 2 Postfächer anlegen (Lieferant XY - offen, Lieferant XY - fertig) und statt der Flag- und Färbe-Geschichte eine ein
Code:
move themessage to mailbox "Lieferant XY - fertig" of account "Lager-Account"
einsetzten in die letzte Repeat-Schleifen, dann hast Du es für alle Ewigkeit sortiert =)
Erkenntlich zeigen darfst Du dich gerne über den PayPal-Button auf meiner Seite Smile
_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter