Hallo zusammen,
folgender Fehler taucht bei mir mit Python 3.5.3, SH 1.5.1 im Zusammenhang mit dem Mail Plugin auf:
Ich bin mir auch ziemlich sicher zu verstehen, was passiert. Beim Aufruf einer Logik macht das Mail Plugin folgendes:
In der Methode Trigger des Schedulers gibt es dann ein Debug-Log:
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
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'
Code:
logic.trigger('IMAP', fo, mail, dest=to)
Code:
logger.debug("Triggering {0} - by: {1} source: {2} dest: {3} value: {4}".format(name, by, source, dest, str(value)[:40]))
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
Kommentar