Modul zum Senden von Emails (simplemail.py)

Code-Stücke können hier veröffentlicht werden.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:@gerold: hast du keinen SVN Server auf dem du das Skript hinterlegen kannst??? Dann könnte ich es einfach mit svn-externals einbinden ;)
Hi Jens!

Noch nicht, aber ich arbeite daran. Wahrscheinlich richte ich auf einem unserer Firmen-Internetserver ein Trac für solche Skripte ein.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ist die Version im ersten Post die aktuelle?

Ist zwar nicht so wichtig, aber mir ist aufgefallen, dass an einer Stelle en und de vertauscht sind:

Code: Alles auswählen

class AttachmentNotFound_Exception(Exception):
    """
    en: Das uebergebene Attachment wurde nicht gefunden
    de: Attachment not found
    """
    pass 
:D
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Rebecca hat geschrieben:Ist die Version im ersten Post die aktuelle?
Ist zwar nicht so wichtig, aber mir ist aufgefallen, dass an einer Stelle...
Hi Rebecca!

Ja, im ersten Beitrag steht immer die aktuelle Version. Ich habe jetzt auch einen Hinweis darauf hinzugefügt.

Der Fehler wurde ausgebessert.

Code: Alles auswählen

*   - Fehlerklassen von **SimpleMail_Exception** abgeleitet. Damit wird
*     bei einem Fehler jetzt auch eine aussagekräftigere Fehlermeldung
*     ausgegeben. Dabei habe ich auch die vertauschten Fehlermeldungen
*     ausgetauscht. (Rebecca, danke für die Meldung.)
*   - Da die Klassen **CCRecipients** und **BCCRecipients** sowiso von
*     **Recipients** abgeleitet wurden, kann ich mir das Überschreiben
*     der Initialisierung (__init__) und die Angabe der Slots sparen.
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:@gerold: hast du keinen SVN Server auf dem du das Skript hinterlegen kannst??? Dann könnte ich es einfach mit svn-externals einbinden ;)
Hi Jens!

Es entwickelt sich. :D

Ich (wir) richte(n) gerade ein öffentlich zugängliches Subversion-Repository und ein Trac für "simplemail" ein.

Allerdings würde ich das Projekt erst dann bei dir einbinden, wenn ich ein richtiges Paket daraus gemacht habe. Es wird sich in den nächsten Tagen noch einiges daran ändern.

Aber die URLs stehen schon mal fest.

Trac: http://gelb.bcom.at/trac/simplemail/
SVN: http://gelb.bcom.at/svn/pub/simplemail/

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Eine komplettes trac/SVN nur für simplemail??? Ist das nicht zuviel des guten ;)

Ich meine, vielleicht legst du es besser so an:
  • simplemail/branches
    simplemail/tags
    simplemail/trunk
Dann hast du noch Platz für andere Sachen ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:Eine komplettes trac/SVN nur für simplemail??? Ist das nicht zuviel des guten ;)
Hi Jens!

Das passt schon so. 8)
Ich mag es nicht, wenn sich alles mischt. Die Emails über Änderungen im Repository, das Wiki, die Timeline, die Roadmap, die Tickets,...

Ein Programm -- Ein Trac. So ist es mir am Liebsten.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
rogen
User
Beiträge: 85
Registriert: Dienstag 29. März 2005, 17:45
Wohnort: neustift
Kontaktdaten:

frage

kann ich ein bild in ein html email einfügen ?

mfg

gerhard
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

rogen hat geschrieben:kann ich ein bild in ein html email einfügen ?
Hallo Gerhard!

Leider nur als Link zu einem Bild auf einem Internetserver. Bilder werden derzeit nicht in das Email eingebunden. Das steht aber ganz weit oben in meiner Wunschliste.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Damaskus
Administrator
Beiträge: 995
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

Hallo Gerold,
warscheinlich sehe ich den Wald vor lauter Bäumen nicht... aber ich ich sitze nun schon seit 2 Stunden an einem Fehler und komm nicht drauf wo der steckt...

folgender Code

Code: Alles auswählen

        simplemail.from_address = "u@a.de"
        simplemail.from_caption = "ich"
        simplemail.smtp_user = "xxxxxxx"
        simplemail.smtp_password = "xxxxxxx"
        simplemail.to_address = "u@a.de"
erzeugt folgende Fehlermeldung
'Email' object has no attribute 'to_address'
hat jemand dazu eine Idee?

Gruß
Damaskus
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Damaskus hat geschrieben:

Code: Alles auswählen

        simplemail.from_address = "u@a.de"
        simplemail.from_caption = "ich"
        simplemail.smtp_user = "xxxxxxx"
        simplemail.smtp_password = "xxxxxxx"
        simplemail.to_address = "u@a.de"
Servus Damaskus!

to_address lässt sich nur beim Initialisieren übergeben. Wenn du im Nachhinein einen Empfänger hinzufügen möchtest, dann funktioniert da so:

Code: Alles auswählen

simplemail.recipients.add("to_address", "to_caption")
lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hey wie wäre es eigentlich mit einem cli ?

Was mir auffält, auf deinem SVN Server ist die hilfedatei nicht die für simplemail... Da ich kein rst2html.py und tidy.exe hab, kann ich mir die nicht selber generieren...

Kannst du die hilfe nicht aktualisiert auf dem SVN Server packen???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:Hey wie wäre es eigentlich mit einem cli ?
[...]
auf deinem SVN Server ist die hilfedatei nicht die für simplemail...
Hi Jens!

Was ist "cli"?

Um die Hilfe-Datei werde ich mich in ein paar Wochen kümmern. Hoffentlich vergesse ich es nicht. Derzeit arbeite ich Tag und Nacht. :?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

gerold hat geschrieben:
jens hat geschrieben:Hey wie wäre es eigentlich mit einem cli ?
[...]
auf deinem SVN Server ist die hilfedatei nicht die für simplemail...
Hi Jens!

Was ist "cli"?

Um die Hilfe-Datei werde ich mich in ein paar Wochen kümmern. Hoffentlich vergesse ich es nicht. Derzeit arbeite ich Tag und Nacht. :?

lg
Gerold
:-)
Ich denke er mein Command Line Interface :)
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi @ all!

Neue Version mit einer kleinen, ungetesteten Änderung:

>> http://gelb.bcom.at/trac/simplemail/bro ... plemail.py <<

Code: Alles auswählen

* 2007-05-02 Gerold
*   - Überflüssige #------- entfernt
*   - Neuer Parameter: "use_tls"; gibt an ob die Verbindung mit TLS
*     verschlüsselt werden soll. (Ob es funktioniert kann ich nicht testen!)
Sollte der Code nicht funktionieren, dann musst du wieder die ältere Version http://gelb.bcom.at/trac/simplemail/bro ... l.py?rev=4 verwenden.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi @ all!

Simplemail.py kann jetzt auch mit Googlemail (Gmail).

>> http://gelb.bcom.at/trac/simplemail/bro ... plemail.py <<

So funktioniert es mit Googlemail:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import simplemail

simplemail.Email(
    from_address = "EMAILNAME@gmail.com", 
    to_address = "EMPFAENGER@domain.xx",
    subject = "Googlemail Test",
    message = "Das ist ein Googlemail Test.",
    smtp_server = "smtp.googlemail.com:587", # ACHTUNG! Port = 587
    smtp_user = "EMAILNAME", # Emailadresse ohne "@gmail.com"
    smtp_password = "PASSWORT", 
    use_tls = True # Muss auf True gesetzt sein
).send()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Alexci
User
Beiträge: 44
Registriert: Dienstag 18. April 2006, 23:08

Hallo!

Es funktioniert... Ich kann mich nur noch einmal bedanken!

Mit freundlichen Gruessen,
Aleksandar
jhamel
User
Beiträge: 37
Registriert: Sonntag 2. Juli 2006, 16:03
Wohnort: Ostwestfalen
Kontaktdaten:

gerold hat geschrieben:Natürlich darfst du es verwenden. Deshalb habe ich es hier rein gestellt und es freut mich, wenn es verwendet wird.

Das mit der Authentifizierung werde ich demnächst einbauen. Da sieht man wieder, wie schnell etwas vergessen wird, wenn man etwas selbst nicht braucht. :shock:

Danke für den Hinweis. :D

mfg
Gerold
:-)
Hallo Gerold,
ich habe dein simplemail ebenfalls in mein Projekt (www.cuon.org) eingebaut und bin wirklich begeistert. Danke für die prima Arbeit.

Jürgen Hamel
lost_mind
User
Beiträge: 82
Registriert: Dienstag 13. Februar 2007, 11:55

Hi ne frage kann simple mail auch mit proxys umgehen ?

wenn ich mit folgendem send will:

Code: Alles auswählen

from simplemail import Email

for i in range(10):
        Email(
        from_address = "test@test.at",
        to_address = "censored@censored.com",
        subject = "test",
        message = "testmessage"
        ).send()
ich bekomme dies fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\cwo\Desktop\python\send.py", line 8, in <module>
    message = "testmessage"
  File "C:\Dokumente und Einstellungen\cwo\Desktop\python\simplemail.py", line 487, in send
    smtp.connect(self.smtp_server)
  File "C:\Python25\Lib\smtplib.py", line 310, in connect
    raise socket.error, msg
error: (10061, 'Connection refused')
sry das ich hier noch poste ist aber wichtig
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lost_mind hat geschrieben:Hi ne frage kann simple mail auch mit proxys umgehen ?

Code: Alles auswählen

    smtp.connect(self.smtp_server)
  File "C:\Python25\Lib\smtplib.py", line 310, in connect
    raise socket.error, msg
error: (10061, 'Connection refused')
Hallo lost_mind!

simplemail ist kein SMTP-Server, sondern nur ein SMTP-Client. Damit kannst du Emails verschicken, wenn du zugriff zu einem SMTP-Server hast. Normalerweise bekommst du die SMTP-Zugangsdaten von deinem Internetprovider zur Verfügung gestellt.

Wenn also das Senden nicht funktioniert, weil "Connection refused", dann musst du simplemail mit den korrekten Zugangsdaten füttern.

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

Falls du doch hinter einem Email-Proxy liegst, dann musst du schon mehr Informationen dazu liefern. ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lost_mind
User
Beiträge: 82
Registriert: Dienstag 13. Februar 2007, 11:55

arr sry ich hab extra noch die seiten durchgeblättert aber den posts übersehen naja ich hätte mir auch denken können das das script den smtp server nicht erraten kann *kopfschüttel* sry für diese 2 unnötigen posts :(

aber thx für die hilfe :) gleich mal testen
Antworten