Mittwoch, 6. Juli 2011

[Profil] Email Funktion für das Notizenwidget

Ich wollte mir grade eine Notiz in Googles Aufgabenfenster eintragen, da dachte ich mir, eigentlich wäre es doch cool wenn ich die vom PC auf mein Notizenwidget übertragen kann. Gesagt getan, mit diesem Profil soll es möglich sein Notizen per Email an das Widget zu senden. Wieterhin sollen die vorhandenen Notizen auch an eine beliebige Email Adresse versendet werden können.

Da man leider nur auf die Betreffzeile einer eingehenden Email zugreifen kann, muss sich alles dort abspielen. Damit nicht jede Email als Notiz hinzugefügt wird, brauchen wir eine Kennung. Am naheliegensten ist da das Wort "Notiz", dann noch ein ":" als Splitter für "Variable Split" und nun kann die Notiz folgen. Der Rest läuft nun wie im "Notiz hinzufügen" Task.
Hier das Profil:
  • Profil: "Email an Notiz"
    • Trigger:
      1. Event -> K9 Email Received
        • From: "Bernd Kellermann" <Bernd@Kellermanns.com>
    • Tasks:
      1. Variable -> Variable Split
        • Name: %ESUBJ
        • Splitter: :
      2. Tasker -> If %ESUBJ1 ~ Notiz
      3. Variable -> Variable Add
        • Name: %COUNT
        • Value: 1
      4. File -> Write File
        • File: Notizen.txt
        • Text: %COUNT) %ESUBJ2
        • Append: Yes
      5. Tasker -> Perform Task
        • Name: Notizen aktualisieren
Der Absender bei "K9 Email Received" hat mir ein paar Probleme bereitet. Man muss ihn wirklich genau so angeben wie ihn K9 erhält. Das heißt es reicht nicht nur die Adresse anzugeben. Es muss in dem Schema angegeben werden wie ich es gemacht habe. Wenn natürlich nur die Adresse als Absender übertragen wird, dann reicht diese.

Die Variable %COUNT speichert die Anzahl der Notizen. Diese habe ich auch schon im Notizenwidget genutzt, somit enthält sie auch schon den aktuellen Wert. Zum Schluss wird das Widget aktualisiert, d.h. die txt-Datei wird neu eingelesen. Diesen Task habe ich in meinem Beitrag zum Notizenwidget beschrieben.

Kommen wir nun zum versenden der Notizen an eine beliebige Email Adresse. Der Task liest alle Notizen ein und schickt diese an die angegebene Email Adresse.
  • Task: Notizen versenden
    1. Variable -> Variable Query
      • Name: %MAIL
    2. File -> Read Paragraph
      • File: Notizen.txt
      • To Var: %NOTIZEN
    3. File -> Read Paragraph
      • File: Notizen.txt
      • To Var: %NOTIZEN
      • If %NOTIZEN ~ EOF
    4. File -> Write File
      • File: Tasker/mail.conf
    5. Misc -> Run Script 
      • sendemail.py
Nun muss das Widget noch um einen Button erweitert werden, mit welchem der Task dann gestartet werden kann. Ich habe dazu ein weiteres Bild hinzugefügt und als Click Action den oben beschriebenen Task ausgewählt.

Viel Spaß :)

Kommentare:

  1. Hallo, gibt es auch einen trigger für eingehende emails von der standart email app?

    AntwortenLöschen
    Antworten
    1. Nein, du kannst allerdings das Event "Notification" nehmen und als Owner GMail eingeben. Dann kannst du allerdings Absender und Betreff nicht heraus bekommen. Nur %NTITLE enthält den Inhalt der letzten Notification, bei GMail ist das leider nur "neue Email"

      Löschen
  2. Genau dies hatte ich schon ausprobiert gehabt. Anscheindend funktioniert das vieleicht bei G-Mail, aber nicht bei E-Mail. Schade..

    AntwortenLöschen
    Antworten
    1. Aso die E-Mail App nutze ich nicht, kann aber gut sein, dass dies nicht geht.
      Ich hab K9-Mail allerdings auch nur wegen der Benachrichtigung installiert. Ansonsten nutze ich es gar nicht. D.h. ich habe alle Benachrichtigungen in Form von Tönen/Vibration und Nachrichten in der Nachrichtenleiste deaktiviert und nutze nur die Tasker unterstützung. Funktioniert 1a und man merkt gar nicht dass man ein zusätzliches Programm im Hintergrung laufen hat.
      Könntenst du dir also auch als Lösung überlegen.

      Löschen