Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler in Mail-Plugin (?)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Thilo
    antwortet
    Ich kann auch nicht behaupten, dass ich absolut sicher wäre, ob das so passt. Ich war genau auf dieser Seite und habe mich an dem Satz "This is the default value -- that is, "Content-Transfer-Encoding: 7BIT" is assumed if the Content-Transfer-Encoding header field is not present." orientiert. Eigentlich scheint mir das relativ eindeutig zu sein. Aber wie gesagt, Kompetenz ist bei mir da auch keine vorhanden. Ich sehe zu, das ich die Tage einen PR fertig bekomme. Muss vorher noch ein bisschen aufräumen.

    Gruß
    Thilo

    Einen Kommentar schreiben:


  • psilo
    antwortet
    https://www.w3.org/Protocols/rfc1341...-Encoding.html nach zu gehen bin ich nicht wirklich sicher, ob 7BIT in jedem Fall korrekt ist? Kenne mich da aber auch nicht wirklich aus. Ein PR gegen den Develop ist sicher aber nicht verkehrt, dann kann man das Thema dort diskutieren.

    Einen Kommentar schreiben:


  • Thilo
    antwortet
    Ich habe eben noch einmal etwas genauer recherchiert. Das ganze funktioniert für Emails, bei denen der content-transfer-encoding header gesetzt ist. Ein workaround, der nicht an den Core-Code gehen würde, sondern das Problem direkt im Mail Plugin behebt, wäre, den header auf den Standardwert zu setzen, sollte er nicht vorhanden sein.
    Das funktioniert prima, indem folgende beide Zeilen im Mail Plugin ergänzt werden:

    Code:
    if not 'content-transfer-encoding' in mail.keys():    
        mail['content-transfer-encoding'] = '7BIT'
    Was meint ihr? Ich kann gerne einen Patch zur Verfügung stellen bzw. einen Push Request aufmachen.

    Gruß
    Thilo

    Einen Kommentar schreiben:


  • Thilo
    hat ein Thema erstellt Fehler in Mail-Plugin (?).

    Fehler in Mail-Plugin (?)

    Hallo zusammen,

    folgender Fehler taucht bei mir mit Python 3.5.3, SH 1.5.1 im Zusammenhang mit dem Mail Plugin auf:

    Code:
    2018-07-30  16:35:51 ERROR    IMAP         Method IMAP exception: 'content-transfer-encoding'
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/scheduler.py", line 517, in _task
        obj()
      File "/usr/local/smarthome/plugins/mail/__init__.py", line 113, in _cycle
        logic.trigger('IMAP', fo, value=mail, dest=to)
      File "/usr/local/smarthome/lib/logic.py", line 984, in trigger
        self.scheduler.trigger(self._logicname_prefix+self.name, self, prio=self.prio, by=by, source=source, dest=dest, value=value, dt=dt)
      File "/usr/local/smarthome/lib/scheduler.py", line 233, in trigger
        logger.debug("Triggering {0} - by: {1} source: {2} dest: {3} value: {4}".format(name, by, source, dest, str(value)[:40]))
      File "/usr/lib/python3.5/email/message.py", line 136, in __str__
        return self.as_string()
      File "/usr/lib/python3.5/email/message.py", line 159, in as_string
        g.flatten(self, unixfrom=unixfrom)
      File "/usr/lib/python3.5/email/generator.py", line 116, in flatten
        self._write(msg)
      File "/usr/lib/python3.5/email/generator.py", line 189, in _write
        msg.replace_header('content-transfer-encoding', munge_cte[0])
      File "/usr/lib/python3.5/email/message.py", line 559, in replace_header
        raise KeyError(_name)
    KeyError: 'content-transfer-encoding'
    Ich bin mir auch ziemlich sicher zu verstehen, was passiert. Beim Aufruf einer Logik macht das Mail Plugin folgendes:
    Code:
    logic.trigger('IMAP', fo, mail, dest=to)
    In der Methode Trigger des Schedulers gibt es dann ein Debug-Log:
    Code:
    logger.debug("Triggering {0} - by: {1} source: {2} dest: {3} value: {4}".format(name, by, source, dest, str(value)[:40]))
    Das übergebene Mail Objekt wird also mittels str(value) in einen String umgewandelt. Das geht allerdings in der vorliegenden Python-Version nicht und resultiert in der geloggten Fehlermeldung.

    Wie geht man nun am besten damit um? Im Scheduler prüfen, ob value in einen String umgewandelt werden kann und ansonsten den Klassennamen ausgeben?

    Gruß
    Thilo
    Zuletzt geändert von Thilo; 30.07.2018, 20:49.
Lädt...
X