Seite 1 von 1

simplemail.py und SSL

Verfasst: Mittwoch 2. Mai 2007, 20:44
von Alexci
Hallo!

Ich habe ne kurze frage ueber emails versenden mit simplemail.py. Was wenn der email server eine "secure connecton (SSL)" benoetignt? Kann man auch dann emails versenden? Z.b. ueber Gmail?


Hier der code:

Code: Alles auswählen

from simplemail import Email 
import time
import os
import pythoncom

email = Email( 
    from_address = "meineemailadresse@gmail.com",
    from_caption = "Name",
    smtp_server      = "smtp.gmail.com:465",
    smtp_user        = "user",
    smtp_password    = "Password",
    to_address = "to-adresse", 
    subject = "Gmail test", 
    message = "Test"
)
email.send()

Und hier die errormeldung:

Traceback (most recent call last):
File "C:/Program Files/Python24/Lib/sendemail_gmail.py", line 17, in -toplevel-
email.send()
File "C:\Program Files\Python24\Lib\simplemail.py", line 522, in send
smtp.connect(self.smtp_server)
File "C:\Program Files\Python24\lib\smtplib.py", line 304, in connect
(code, msg) = self.getreply()
File "C:\Program Files\Python24\lib\smtplib.py", line 345, in getreply
line = self.file.readline()
File "C:\Program Files\Python24\lib\socket.py", line 340, in readline
data = self._sock.recv(self._rbufsize)
error: (10054, 'Connection reset by peer')





Danke!


Mit freundlichen Gruessen,
Aleksandar

Re: simplemail.py und SSL

Verfasst: Mittwoch 2. Mai 2007, 20:53
von gerold
Alexci hat geschrieben:"secure connecton (SSL)"
Hallo Aleksandar!

Nein, SSL ist in simplemail.py nicht eingebaut. Ich habe damit auch keine Erfahrung. Die Python-Hilfe zu SMTP bringt die Methode ``starttls`` zum Vorschein. Damit könnte es funktionieren, eine TLS-Verbindung aufzubauen.
Python-Hilfe hat geschrieben:starttls( [keyfile[, certfile]])

Put the SMTP connection in TLS (Transport Layer Security) mode. All SMTP commands that follow will be encrypted. You should then call ehlo() again.
If keyfile and certfile are provided, these are passed to the socket module's ssl() function.
Das musst du dir aber selber einbauen und ausprobieren.

mfg
Gerold
:-)

Re: simplemail.py und SSL

Verfasst: Mittwoch 2. Mai 2007, 21:24
von gerold
gerold hat geschrieben:Das musst du dir aber selber einbauen und ausprobieren.
...Zumindest musst du es selber ausprobieren. Siehe: http://www.python-forum.de/post-66374.html#66374

mfg
Gerold
:-)

Verfasst: Donnerstag 3. Mai 2007, 15:24
von Alexci
Hallo!

Erstmal danke an Gerold, dass Sie immer Zeit haben um meine Fragen zu beantworten :D

Das neue Modul funktioniert nicht ganz... da fehlt ein teil, im vergleicht zu der alten Version (z.b. __slots__ im class Email()) und da gibt es auch einige bugs im def testen()...

Aber ich habe starttls( [keyfile[, certfile]]) ausprobiert... der Process bleibt einfach stecken... es kommt keine Errormeldung und es passiet nichts... ich werde es mir in den naechsten genauer ansehen und melde mich falls ich was neues herausfinde...


Mit freundlichen Gruessen,
Aleksandar

Verfasst: Donnerstag 3. Mai 2007, 15:50
von Leonidas
Alexci hat geschrieben:da fehlt ein teil, im vergleicht zu der alten Version (z.b. __slots__ im class Email())
``__slots__`` wird keiner vermissen, da es keine besondere Funktion gehabt hatte.

Verfasst: Donnerstag 3. Mai 2007, 16:13
von gerold
Alexci hat geschrieben:Das neue Modul funktioniert nicht ganz...
[...]
... der Process bleibt einfach stecken... es kommt keine Errormeldung und es passiet nichts...
Hallo Aleksandar!

Die üblichen Funktionen des Moduls habe ich getestet. Diese funktionieren bei mir wie erwartet. Der Fehler, den das Testskript produziert, ist erwünscht. Es wird damit getestet, ob es einen Fehler gibt, wenn eine falsche Adresse übergeben wird.

Die "__slots__" habe ich entfernt, da diese für simplemail.py keinen Vorteil bringen.

Dass der Prozess einfach hängen bleibt, könnte daran liegen, dass ich vergessen habe, den Login erst nach ``starttls()`` durchzuführen. Das habe ich in der neuen Version ausgebessert, die hier zur Verfügung steht: http://gelb.bcom.at/trac/simplemail/bro ... plemail.py

mfg
Gerold
:-)

Verfasst: Donnerstag 3. Mai 2007, 22:47
von Alexci
Hallo!

Stimmt, an dem "__slots__" lag es doch nicht, bei mit war ein bug :oops: ...

Ich habe es nochmal getestet, funktioniert immer noch nicht... als haette starttls() keinen einfluss... bleibt immer noch haengen, wie als wuerde man in Outlook Express SSL ausschalten... dann passiert auch nix, der kann sich nicht verbinden und versucht es unbegrenzt (gut, im Outlook Express nicht unbegrentzt, dort gibt es eine Zeitbeschraenkung)...

Kann es sein dass da was doch in die starttls() klammern rein muss?


Danke!

Mit freundlichen Gruessen,
Aleksndar Cikota

Verfasst: Freitag 4. Mai 2007, 08:40
von gerold
Alexci hat geschrieben:bleibt immer noch haengen
Hallo Alexci!

So etwas kann man nicht ohne einen richtigen Test mit Googlemail programmieren. :? Ich habe mir ein Konto bei Gmail erstellt und damit getestet. Zwei zusätzliche ``smtp.ehlo()`` an der richtigen Stelle platziert und jetzt funktioniert ``simplemail.py`` auch mit Gmail:

http://www.python-forum.de/post-66534.html#66534

mfg
Gerold
:-)