Mit Home Assistant E-Mails überwachen

Danke für deinen Beitrag!

finde ich voll toll, für die “älteren”.

ich habe mehrere “copy to folder”-buttons:

  • Wichtig => INBOX.Wichtig,
  • SPAM => INBOX.JUNK, und
  • Archiv => INBOX.Archiv und
    sync (mit thunderbird, solange ich teste) und
    backup (nas: ha => nas:volume1\ha),
    auto delete (24h INBOX.JUNK > clear) und so,

aber was ich nicht verstehe, ist (templating)

{% macro strip_email(html) %}
  {# Handle undefined or None input #}
  {% set html_safe = html | default('', true) %}
  {# Remove all newlines, carriage returns, and tabs early #}
  {% set no_newlines = html_safe | regex_replace(find='[\\r\\n\\t]+', replace=' ', ignorecase=True) %}
  {# Decode quoted-printable encoding (e.g., =3D to =) #}
  {% set decoded_qp = no_newlines | regex_replace(find='=3D', replace='=', ignorecase=True) %}
  {# Remove <style> tags and their content #}
  {% set no_style_tags = decoded_qp | regex_replace(find='<style[^>]*>.*?</style>', replace='', ignorecase=True) %}
  {# Remove inline style attributes #}
  {% set no_inline_style = no_style_tags | regex_replace(find='style="[^"]*"', replace='', ignorecase=True) %}
  {# Remove conditional comments (e.g., [if gte mso 9]) #}
  {% set no_comments = no_inline_style | regex_replace(find='<!--\[if[^>]*>.*?<!\[endif\]-->', replace='', ignorecase=True) %}
  {# Remove all remaining HTML tags #}
  {% set stripped = no_comments | regex_replace(find='<[^>]+>', replace='', ignorecase=True) %}
  {# Decode HTML entities, including Unicode entities #}
  {% set decoded = stripped 
    | regex_replace(find='&amp;', replace='&', ignorecase=True)
    | regex_replace(find='&lt;', replace='<', ignorecase=True)
    | regex_replace(find='&gt;', replace='>', ignorecase=True)
    | regex_replace(find='&quot;', replace='"', ignorecase=True)
    | regex_replace(find='&nbsp;', replace=' ', ignorecase=True)
    | regex_replace(find='&#39;', replace="'", ignorecase=True)
    | regex_replace(find='&ndash;', replace='–', ignorecase=True)
    | regex_replace(find='&mdash;', replace='—', ignorecase=True)
    | regex_replace(find='&#xE4;', replace='ä', ignorecase=True)
    | regex_replace(find='&#xFC;', replace='ü', ignorecase=True)
    | regex_replace(find='&#xDF;', replace='ß', ignorecase=True)
    | regex_replace(find='&#xF6;', replace='ö', ignorecase=True)
    | regex_replace(find='&copy;', replace='©', ignorecase=True)
    | regex_replace(find='&reg;', replace='®', ignorecase=True) %}
  {# Clean up multiple whitespace #}
  {{ decoded | regex_replace(find='\\s+', replace=' ', ignorecase=True) | trim }}
{% endmacro %}

{{ strip_email(state_attr(“sensor.imap_content”, “Message”)) }}

links unten meine variante, rechts die von simon42

ich habe immer wieder probleme die emails zu lesen statt die css und html anweisungen

vielleicht habt ihr eine idee. vielen dank!

Hallo zusammen,

ich möchte euch von meinem aktuellen Projekt erzählen und hoffe auf eure Unterstützung oder Ideen! Wie viele von euch kenne ich die Herausforderung, wenn die E-Mail-Postfächer der Eltern überquellen. Meine Eltern haben mehrere E-Mail-Konten, und es war an der Zeit, das mit Home Assistant zu organisieren. Ähnlich wie Simon42 habe ich schon einige Aktionen eingerichtet – zum Beispiel, um E-Mails als gelesen zu markieren, zu löschen, als wichtig zu kennzeichnen oder in Spam/Archiv zu verschieben (siehe das Bild mit den Buttons, das ich beigefügt habe). Das funktioniert super dank der IMAP-Integration!

Aber jetzt habe ich eine neue Idee für die nächste Aktion: Ich möchte automatisierte Abläufe basierend auf E-Mail-Anhängen erstellen, z. B. Rechnungen als PDF speichern oder Fotos in ein Album hochladen. Leider unterstützt die aktuelle ImapMessage-Klasse in Home Assistant keine Anhänge – weder die Anzahl noch die Namen oder die Dateien selbst.

Daher habe ich zwei Ansätze verfolgt:

  1. Bestehendes Modul: Ich habe das Custom-Component ha_imap_attachment entdeckt. Es erweitert den IMAP-Sensor und kann Anhänge herunterladen, inklusive Attributen wie num_attachments und attachment_paths. Das habe ich getestet, und es funktioniert, aber ich würde es lieber in den Core integriert sehen, um auf externe Lösungen zu verzichten.
  2. Community-Diskussion: Deshalb habe ich eine Diskussion bei Home Assistant gestartet: IMAP - Enhance ImapMessage to fetch attachments. Dort schlage ich vor, die ImapMessage-Klasse um Anhangunterstützung zu erweitern, inklusive eines Code-Beispiels, wie das umgesetzt werden könnte. Vielleicht könnt ihr als Community diesen Vorschlag unterstützen, z. B. durch Likes oder weitere Stimmen, um die Entwickler zu überzeugen!

Mein Ziel ist es, eine nahtlose Integration zu haben, die nicht nur Text und HTML ausliest, sondern auch Anhänge verarbeitet – ähnlich wie bei anderen E-Mail-Clients (z. B. Outlook oder Gmail). Wenn diese Funktion in den Core kommt, könnten wir alle davon profitieren, besonders bei Automatisierungen wie der Verarbeitung von Anhängen.

Was denkt ihr? Hat jemand Erfahrung mit der ha_imap_attachment-Lösung oder Ideen, wie wir die Diskussion vorantreiben können? Ich freue mich auf eure Rückmeldungen!

ich sehe das kritisch. Warum soll das Core System zu einer “Eierlegendenwollmichs*au” mutieren? Core soll schlank und stabil bleiben. Die HASC Erweiterung gibt es ja. Wenn hier Fehler gefunden werden oder neue Funktionen gewünscht sind gibt es ein Github Projekt wo per Issue oder Pullrequest unterstützt werden kann.

Bevor hier solche Dinge in Core einfließen sollten erstmal grundlegende Dinge wie Oauth2 implementiert werden.

1 „Gefällt mir“

Ich habe mich mit diesem Thema vor kurzem auch beschäftigt. Es gibt hierzu auch die Möglichkeit via “KI”/LLM die Emails vorsortieren zu lassen. Dadurch kann der Spam von den relevanten EMails (meines Erachtens) sehr gut getrennt werden.

Hier die Anleitung, über die ich auf das Thema gestoßen bin:

https://www.xda-developers.com/set-up-email-triage-system-home-assistant-local-llm/

Der Vorteil hier ist, dass man das auch auf langsameren Systemen ohne größere GK laufen lassen kann - man braucht hier dann nur etwas mehr Arbeitsspeicher (der ist ja aktuell vergleichsweise günstig). Bei Emails spielt die Reaktionsgeschwindigkeit ja nicht so die wichtige Rolle vgl. dem Assist vom HA (bei dem der User direkt die Antwort erwartet).

@thombe
dein link ist leider jetzt ein 404, gibt es den artikel noch online?

1 „Gefällt mir“

Super - danke :slight_smile:

Der Originallink wurde leider gelöscht…