Seite 1 von 2
Mails versenden in Version 2.4
Verfasst: Freitag 25. März 2011, 17:01
von Duesselentchen
Hallöchen
Ich benutze Python 2.7 und habe folgendes script (auszug) geschrieben:
Code: Alles auswählen
import datetime
import os
import sys
import glob
import smtplib
from email.mime.text import MIMEText
[...]
job_number_list = [] #Ein Array mit Nummern - wird in [...] gefüllt
[...]
if job_number_list:
listing = "Hier fehlt etwas: " + "\n"
for job_number in job_number_list:
listing = listing + "\n" + job_number
# mail header
yesterday = datetime.date.today () - datetime.timedelta (days=day_deduction)
msg = MIMEText(listing)
msg['Subject'] = 'Fehlende Dateien im Strudel (Eingangsdatum seit ' + \
str(yesterday.strftime ("%d.%m.%y")) + ')'
msg['From'] = mail_sender
msg['To'] = ', '.join(mail_receiver)
# server connection
try:
server = smtplib.SMTP(servername)
except:
print "Programmabbruch: Der Severname wurde falsch eingegeben"
sys.exit(1)
try:
server.sendmail(mail_sender, mail_receiver, msg.as_string())
except:
print "Programmabbruch: Die eMail-Adresse(n) wurden falsch eingegeben"
sys.exit(1)
server.quit()
sys.exit(0)
Das funktioniert auch alles, wie es soll!
AAAaaber:
Nun sollte das ganze Programm auf den Server und der kommt anscheinend mit dem Mimetext nicht zurecht.
Nun läuft auf dem Server Python 2.4 (ich wusste es vorher nicht - werde nun Python 2.4 bei mir installieren...) und ich habe bisher keine Möglichkeit gefunden, mein Script dafür umzuschreiben.
Gibt es hier jemanden, der mir dabei helfen kann?
Fehlermeldungen:
Traceback (most recent call last):
File "DateiInOrdner.py", line 54, in ?
from email.mime.text import MIMEText
ImportError: No module named mime.text
Nach Umbenennung der Methode auf
import email.MIMEText:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'MIMEText' is not defined
Danke schon mal im Vorraus,
Duesselentchen
Re: Mails versenden in Version 2.4
Verfasst: Freitag 25. März 2011, 18:11
von Duesselentchen
Okay - ich habe es nun Dank google Lösen können.
Für alle, die mal das gleiche Problem haben sollten:
Re: Mails versenden in Version 2.4
Verfasst: Freitag 25. März 2011, 18:21
von deets
Ich wuerde dir TurboMail empfehlen:
http://www.python-turbomail.org/docs/
Das macht die ganze Sache einfacher, konfigurierbarer, und verlaesslicher. Emails - insbesonder Multipart/MIME - sind *eklig*. TurboMail haelt den Ekel fern. Wir haben damit zB gerade ein schickes neues HTML-Newsletter Ding gebaut, mit embedded Images (also Images, die angehangen sind, aber nicht als solche auftauchen - dafuer aber im HTML)
Re: Mails versenden in Version 2.4
Verfasst: Montag 28. März 2011, 08:19
von Duesselentchen
Ich brauche nun echt nichts besonderes - die Mails sollen verschickt werden, wenn Dateien fehlen und das einmal täglich. In der Mail steht dann nur eine Liste mit den Sachen die Fehlen.
Da ich aber aufgeschlossen bin (

) bin ich dem Link schon gefolgt und probiere das gleich mal aus!
Danke für den Tipp - bei meiner google-recherche bzgl. Mails mit Python zu verschicken habe ich meist nur links zum Thema Mime gefunden...
\Nachtrag: Das mit dem Turbomail sah nun eigentlich nicht schwer aus, ABER: Ich bekomme die Bibliothek turbomail nicht eingebunden

.
Ich habe versucht Turbomail herunterzuladen und einzubinden, jedoch klappt das nicht so, wie ich das mag (--> ImportError: No module named turbomail)
Re: Mails versenden in Version 2.4
Verfasst: Montag 28. März 2011, 11:53
von Hyperion
Alternativ kannst Du auch Gerolds Simplemail-Modul verwenden:
http://gelb.bcom.at/svn/pub/simplemail/ ... plemail.py
Ist nicht die aktuelle Version fürchte ich; die Links auf den Thread im Forum waren alle broken und auch EnTeQuAks trac-Link scheint tot zu sein. Evtl. hat jemand anderes hier im Forum einen Clone davon rumliegen?
Re: Mails versenden in Version 2.4
Verfasst: Montag 28. März 2011, 18:25
von deets
Duesselentchen hat geschrieben:
\Nachtrag: Das mit dem Turbomail sah nun eigentlich nicht schwer aus, ABER: Ich bekomme die Bibliothek turbomail nicht eingebunden

.
Ich habe versucht Turbomail herunterzuladen und einzubinden, jedoch klappt das nicht so, wie ich das mag (--> ImportError: No module named turbomail)
Naja, was genau hast du denn versucht? Einfach nur runterladen geht nicht, es ist ja als EGG released, oder als Source - aber in beiden Faellen muss man es ja in die gewuenschte Python-Installation rein-installieren.
Und was das "ich brauch ja nicht viel" angeht - so faengt's immer an... und dann irgendwann muss man was mit Umlauten oder Attachments schicken, und erfindet Monster-Truck-Raeder neu.
Re: Mails versenden in Version 2.4
Verfasst: Dienstag 29. März 2011, 14:27
von Duesselentchen
- aber in beiden Faellen muss man es ja in die gewuenschte Python-Installation rein-installieren.
Ja, darin lag auch das Problem - mir den .egg - Dateien konnte ich nicht so viel anfangen. Habe versucht sie auszuführen, aber das gab nicht den erhofften Erfolg. Wie Installiere ich die denn rein? :K
Und was das "ich brauch ja nicht viel" angeht - so faengt's immer an... und dann irgendwann muss man was mit Umlauten oder Attachments schicken, und erfindet Monster-Truck-Raeder neu.
Unter normalen Umständen würde ich dir recht geben, nur würde mein Skript mit Attachments keinen Sinn machen etc.. Mein Hauptproblem ist aber, dass ich nun auch etwas dazuinstallieren muss, was mich auf dem Rechner recht wenig stört, auf dem Server aber schon ein wenig mehr - Mime muss ich nur importieren.
Nichts desto trotz mag ich es, zumindest auf dem Rechner, mal ausprobieren, da ich ja nach dem Skript nun nicht aufhöre weiter mit Python zu arbeiten

Re: Mails versenden in Version 2.4
Verfasst: Dienstag 29. März 2011, 15:42
von deets
Duesselentchen hat geschrieben:
Ja, darin lag auch das Problem - mir den .egg - Dateien konnte ich nicht so viel anfangen. Habe versucht sie auszuführen, aber das gab nicht den erhofften Erfolg. Wie Installiere ich die denn rein? :K
Es gibt verschiedene Moeglichkeiten, die einfachste ist, setuptools zu installieren - das sollte man eh haben - und dann "easy_install <das.egg>". Meistens reicht dann sogar "easy_install TurboMail", weil es automatisch dann das Egg runterlaed. Sich damit auszukennen lohnt sich, denn es dreht sich dabei um den Python-Package-Index (kurz PyPI oder auch CHeeseshop genannt), und der hat eine Menge schicker Sachen drin.
Re: Mails versenden in Version 2.4
Verfasst: Donnerstag 31. März 2011, 13:51
von Duesselentchen
@deets: Danke für deine Antwort. Ich habe sie auch nicht ignoriert, nur frage ich mich langsam, wohin die Zeit hinrennt -.-
Ich werde mir aber deinen Rat zu Herzen nehmen!!!!
Re: Mails versenden in Version 2.4
Verfasst: Freitag 8. April 2011, 14:53
von Py-Prog
@Duesselentchen ich will dir nur mal sagen dass wenn du z. B. 2.7 drauf hast und dann 2.4 installierst, wird Python 2.4 alle Einstellungen so ändern dass dann die Skripte immer mit 2.4 aus geführt werden. Wenn das nicht so wär würd ich mir auch noch mal wieder 2.x zulegen.
Re: Mails versenden in Version 2.4
Verfasst: Freitag 8. April 2011, 15:06
von deets
@Py-Prog
Das Muster hier ist "letztes installiertes Python", und damit kannst du dann auch ganz einfach 2.4 und danach 2.7 installieren (und noch jeeeeede Menge andere davor, dazwischen und dahinter), und wenn du einfach mit dem aufhoerst, welches das aktive sein soll, dann ist alles "gut".
Aber im Grunde ist das eh egal, denn wenn du schon mehrere Python-Versionen draufhast, dann musst du eh ueberlegen, wie du die "richtige" verwendest. Ein Hoch auf die Kommandozeile.
[Edit: tautologie rausgeschmissen

]
Re: Mails versenden in Version 2.4
Verfasst: Freitag 8. April 2011, 15:07
von BlackJack
@Py-Prog: So pauschal ist die Aussage einfach nur falsch.
Re: Mails versenden in Version 2.4
Verfasst: Freitag 8. April 2011, 15:42
von Damaskus
Re: Mails versenden in Version 2.4
Verfasst: Samstag 9. April 2011, 12:08
von Py-Prog
BlackJack hat geschrieben:@Py-Prog: So pauschal ist die Aussage einfach nur falsch.
Ich sag nur Windows.

Re: Mails versenden in Version 2.4
Verfasst: Samstag 9. April 2011, 12:18
von Damaskus
Auch unter Windows ist der Betrieb von mehreren Python Versionen gleichzeitig ohne Probleme möglich.
Ich hab auf jedem meiner Server/PC's/Notebook's von Python 2.5 bis 3.2 alle Versionen drauf.
Die einzigste Einschränkung bzw. Entscheidung die man eben treffen muss ist die, welche Python Version man als "Master" Version verwenden will.
Aber so wie in der Unix Welt man eben die Python Version über die Shebang Zeile auswählt so wählt man eben über den Skript aufruf in Windows die zu verwendende Version aus.
Oder mache ich etwa seit Jahren was falsch und merke es nicht?
Gruß
Damaskus
Re: Mails versenden in Version 2.4
Verfasst: Samstag 9. April 2011, 12:20
von BlackJack
@Py-Prog: Auch unter Windows kann man mehrere Versionen parallel verwenden und ein Installer muss auch nicht zwangsläufig die Verknüpfungen einer vorherigen Installation verändern.
Re: Mails versenden in Version 2.4
Verfasst: Sonntag 10. April 2011, 13:06
von Py-Prog
Bei Windows schreiben Programme in die Registry unter anderen hinein welcher Dateityp mit was geöffnet werden soll, das wird dann überschrieben, und wenn nicht kann man nicht alles bequem per doppelklick öffnen.
Re: Mails versenden in Version 2.4
Verfasst: Sonntag 10. April 2011, 16:58
von Leonidas
Py-Prog hat geschrieben:Bei Windows schreiben Programme in die Registry unter anderen hinein welcher Dateityp mit was geöffnet werden soll, das wird dann überschrieben, und wenn nicht kann man nicht alles bequem per doppelklick öffnen.
Ich finde zum Entwickeln ist "Doppelklick" die bei weitem unkomfortableste Variante.
Re: Mails versenden in Version 2.4
Verfasst: Montag 11. April 2011, 16:51
von Py-Prog
Da hat man dann auch die F5-Taste aber beim verwenden wird das dann erst nervig.
Aber eigentlich kann ich mir das ja ehe sparen weil mich versteht eh niemand. (Oder ist das Absicht?)
Re: Mails versenden in Version 2.4
Verfasst: Montag 11. April 2011, 16:59
von Leonidas
Py-Prog hat geschrieben:Aber eigentlich kann ich mir das ja ehe sparen weil mich versteht eh niemand. (Oder ist das Absicht?)
BlackJack hat doch geschrieben, dass man im Installer angeben kann die vorherige Verknüpfung nicht zu überschreiben. Der einzige der nicht versteht oder verstehen will bist höchstens du.