Seite 2 von 6
Verfasst: Samstag 7. Januar 2006, 22:25
von jens
pascalsv hat geschrieben:Ich würde aber gerne wissen, für was diese Slots gut sind:
Zur Speicheroptimierung, s.
http://pythonwiki.pocoo.org/Allgemeine_Begriffe
Verfasst: Samstag 7. Januar 2006, 23:32
von gerold
Hi Pascal!
pascalsv hat geschrieben:beindruckendes Modul!!
Danke! Ich habe aber gerade eben bemerkt, dass nur 10 kB des Modules angezeigt wurden. Deshalb habe ich soeben den Codehighlighter dieses Forums so umgestellt, dass man jetzt den kompletten Code sieht.
pascalsv hat geschrieben:Ich würde aber gerne wissen, für was diese Slots gut sind
[...]
Ist es damit möglich, zur Initialisierung schon die entsprechenden Parameter mitzugeben?
Das war mein erster Versuch mit den New-Style-Klassen von Python zu arbeiten. Ein Feature dieser Klassen ist, dass man die Namen der Variablen, die an die Klasseninstanz gebunden werden können, bekannt geben kann. Python warnt einen dann, wenn man im Code eine Instanzvariable verwendet, die noch nicht definiert wurde und Speicher wird auch gespart, da dadurch die Instanzvariablen anders verwaltet werden.
Da ich das von Visual Basic her gewohnt war, dachte ich, das ist keine schlechte Idee und verwendete es. In der Zwischenzeit bin ich zum Schluss gekommen, dass es nur Zeitverschwendung ist. Ich habe dadurch mehr Aufwand beim Programmieren und schränke die Möglichkeiten einer Klasse mehr ein als notwendig ist. Die Verwendung von __slots__ hat, in meinen Augen, nur dann einen Vorteil, wenn ich die Klasse optimieren muss.
Würde ich heute das Modul neu schreiben, würde ich keine Slots mehr verwenden, da es sich ja nicht um eine Klasse handelt, die hochoptimiert mehrmals aufgerufen wird. Es war ein Versuch und es schadet ja auch niemandem.
Der Effekt, dass man schon beim Erzeugen der Klasse Daten übergeben kann, kommt alleine von der Methode
__init__(). Diese Methode wird beim Instanzieren der Klasse aufgerufen. Ich habe das Modul so programmiert, dass es dem, der das Modul verwendet, überlassen wird, ob die Daten schon beim Instanzieren oder später übergeben werden.
mfg
Gerold

Verfasst: Mittwoch 22. März 2006, 15:56
von gerold
Hi!
Neues Feature:
Es wurden neue Klassen fuer
CC-Empfaenger (Carbon Copy) und
BCC-Empfaenger (Blind Carbon Copy) hinzugefuegt. Ab jetzt können Emails auch an CC und BCC gesendet werden. Wie das funktioniert sieht man in der Funktion ``testen()``
lg
Gerold

Verfasst: Donnerstag 30. März 2006, 14:10
von gerold
Hi!
Reply-to (Antwort an) kann jetzt auch angegeben werden.
lg
Gerold

Datum fehlt
Verfasst: Sonntag 28. Mai 2006, 11:43
von resi
Servus Gerold
simplemail ist ein tolles Tool, die Dokumentation ist ausserdem vorbildlich.
Was m.E. fehlt, ist ein Header für das Datum, das kann nämlich den Spam-
Core negativ beeinflußen.
Das könnte dann etwa so implementiert werden:
from email.Utils import formatdate
und in send():
...
msg['Date'] = formatdate(time.time())
Desweiteren stellt sich die Frage, ob du nicht auch/stattdessen einen generischen
Header-Eintrag zulässt, also:
email = Email(......)
email.add_header('X-YZ', 'Wert')
email.send()
Gruß,
Karl.
Re: Datum fehlt
Verfasst: Sonntag 28. Mai 2006, 17:24
von gerold
resi hat geschrieben:simplemail ist ein tolles Tool, die Dokumentation ist ausserdem vorbildlich. Was m.E. fehlt, ist ein Header für das Datum, das kann nämlich den Spam-
Core negativ beeinflußen.
Hi Karl!
Danke für dein Lob und deinen Hinweis. Was den Datums-Header betrifft, habe ich ihn damals sogar absichtlich weg gelassen, da bei meinen Tests der SMTP-Server das Datum automatisch hinzugefügt hat. (getestet mit Postfix) Mir ist es lieber, wenn der Server den Zeitstempel aufdrückt, da die Uhrzeit bei Servern -- glaube ich -- nicht so oft falsch geht wie bei den Clients.
Falls das allerdings andere SMTP-Server **nicht** automatisch machen, dann werde ich das Datum wohl doch dazu tun müssen.
@All: Was ich jetzt brauche, ist eine Antwort auf die Frage: "Gibt es SMTP-Server, die das Datum nicht automatisch hinzufügen?"
Wenn Ja, welche?
mfg
Gerold

Verfasst: Sonntag 28. Mai 2006, 17:43
von resi
Hi Gerold,
Bei mir hat der SMTP Server (exim4) es nicht automatisch hinzugefügt.
Möglicherweise könnte man den exim4 dahingehend konfigurieren, aber
wenn's dein Modul _auch_ kann, ist es ja kein Schaden
Oder wie gesagt, _beliebige_ weitere Header vom User dazufügen zu lassen.
Gruß,
Karl.
Verfasst: Sonntag 28. Mai 2006, 18:30
von gerold
resi hat geschrieben:Bei mir hat der SMTP Server (exim4) es nicht automatisch hinzugefügt.
Hi Karl!
Ich wusst schon immer, warum ich bei Debian-Installationen Exim sofort durch Postfix ersetzt habe.
Da Exim leider durch die Verwendung in Debian ziemlich oft eingesetzt wird, bleibt mir nichts anderes übrig. Ich werde also das Datum als Header in simplemail einbauen.
Noch einmal vielen Dank für deinen Hinweis.
mfg
Gerold

Verfasst: Sonntag 28. Mai 2006, 18:57
von gerold
Hi!
Änderungen:
* 2006-05-28 Gerold
* - Wortlaut des Headers "User-Agent" geändert.
* - Da nicht jeder SMTP-Server das Datum automatisch zum Header hinzufügt,
* wird ab jetzt das Datum beim Senden hinzugefügt.
* (Karl, danke für den wichtigen Hinweis.)
lg
Gerold

Verfasst: Montag 29. Mai 2006, 06:49
von jens
@gerold: hast du keinen SVN Server auf dem du das Skript hinterlegen kannst??? Dann könnte ich es einfach mit svn-externals einbinden

Verfasst: Montag 29. Mai 2006, 08:12
von gerold
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

Verfasst: Donnerstag 8. Juni 2006, 16:01
von Rebecca
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

Verfasst: Donnerstag 8. Juni 2006, 16:50
von gerold
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

Verfasst: Donnerstag 29. Juni 2006, 22:40
von gerold
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.
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

Verfasst: Freitag 30. Juni 2006, 06:11
von jens
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

Verfasst: Freitag 30. Juni 2006, 07:22
von gerold
jens hat geschrieben:Eine komplettes trac/SVN nur für simplemail??? Ist das nicht zuviel des guten

Hi Jens!
Das passt schon so.
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

Verfasst: Montag 31. Juli 2006, 15:41
von rogen
frage
kann ich ein bild in ein html email einfügen ?
mfg
gerhard
Verfasst: Dienstag 1. August 2006, 08:43
von gerold
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

Verfasst: Dienstag 30. Januar 2007, 07:55
von Damaskus
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
Verfasst: Dienstag 30. Januar 2007, 09:31
von gerold
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:
lg
Gerold
