Problem mit simplemail

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Schlange
User
Beiträge: 15
Registriert: Freitag 24. August 2018, 12:03

Hallo,
ich bin auf der Suche nach einer Möglichkeit per Python E-Mails zu versenden auf simplemail gestoßen und wollte es ausprobieren.
Doch als ich folgendes ausführte

Code: Alles auswählen

from simplemail import Email
Email(from_address = 'xy@unknown.de',
      to_address = 'yx@unknown.de',
      subject = 'important things',
      message = 'unimportant').send()
Bekam ich diese Fehlermeldung:

Traceback (most recent call last):
File "<pyshell#6>", line 4, in <module>
message = 'unimportant').send()
File "C:\Users\007\AppData\Local\Programs\Python\Python36-32\lib\site-packages\simplemail\__init__.py", line 199, in __init__
if isinstance(from_caption, unicode):
NameError: name 'unicode' is not defined

Aber auf https://pypi.org/project/python-simplemail/ ist es genau so angegeben.
Ich habe den unter der selbigen Addresse hinterlegten Code durchsucht, konnte mir dennoch nicht erklären, was ich falsch gemacht habe.

Ich hoffe, dass mir jemand weiterhelfen kann.
Vielen Dank im vorraus!
eckhard
User
Beiträge: 33
Registriert: Montag 14. Dezember 2015, 10:06
Wohnort: Karlsruhe

Benutzt Du Python 3? Versuchs doch mal mit Python 2.7.
Eckhard
Schlange
User
Beiträge: 15
Registriert: Freitag 24. August 2018, 12:03

Oh...das muss ich wohl überlesen haben!
Mir fällt gerade aber auch auf, dass ich den falschen Link angegeben habe.
Und dort (https://github.com/gerold-penz/python-s ... _init__.py) steht nichts darüber.
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Aktuelle Python-Interpreter kennen unicode als Typnamen halt nicht mehr und somit läuft das Modul dort nicht ohne Weiteres. Auch wenn es da nicht so steht. Der dortige Code ist auch schon leicht angestaubt.

Man könnte sich mit dem Python-Tool 2to3 behelfen und das über den Quelltext laufen lassen. Das generiert aber nicht zwingend 100%igen Python-3-Code. Evtl muss der Code danach noch händisch bearbeitet werden. Oder du installierst dir direkt Python 2.7, womit der Quelltext im Original genutzt werden kann.
Benutzeravatar
__blackjack__
User
Beiträge: 13118
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Schlange: Da steht, das das Python 2 ist, gleich in der ersten Zeile: ``#!/usr/bin/env python``. Wenn es Python 3 wäre, stände dort ``python3`` und nicht nur ``python``.

Du könntest auch ein Issue für Gerold aufmachen, vielleicht mag er es ja portieren wenn er Zeit hat.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

__blackjack__ hat geschrieben: Samstag 22. Dezember 2018, 21:18 @Schlange: Da steht, das das Python 2 ist, gleich in der ersten Zeile: ``#!/usr/bin/env python``. Wenn es Python 3 wäre, stände dort ``python3`` und nicht nur ``python``.
Wobei damit nicht unbedingt jeder Windows-Nutzer etwas anfangen kann...
Leon
User
Beiträge: 9
Registriert: Dienstag 10. Juni 2008, 22:06

Hi,

I have changed only these few things in simpleMail.py:
And now it is working with python3. :)

around line 30:
from email import Encoders
from email.Header import Header
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.Utils import formataddr
from email.Utils import formatdate
from email.Message import Message
from email.MIMEAudio import MIMEAudio
from email.MIMEBase import MIMEBase
from email.MIMEImage import MIMEImage

to
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr
from email.utils import formatdate
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage



around line 300:
for key, value in self.header_fields.items():

to
for key, value in list(self.header_fields.items()):


around line 330:
Encoders.encode_base64(att)

to
encoders.encode_base64(att)


Have Fun!
:)
Antworten