Datei auslesen und als Body in einer EMail geben

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.
Kris
User
Beiträge: 4
Registriert: Dienstag 8. November 2005, 14:28
Wohnort: Köln
Kontaktdaten:

Datei auslesen und als Body in einer EMail geben

Beitragvon Kris » Donnerstag 10. November 2005, 13:49

Warum funktioniert folgendes Script nicht ?

beim 4ten Parameter gebe ich eine TXT Datei an ...

Code: Alles auswählen

# Email
import sys, smtplib

empfaenger = sys.argv[1]
absender = sys.argv[2]
betreff = sys.argv[3]
datei = open (sys.argv[4], 'r')
body = datei.readlines ()
datei.close ()

msg = "To: %s\n" %empfaenger
msg = msg + "From: %s\n" %absender
msg = msg + "Subject: %s\n\n" %betreff 
msg = msg + body

smtp_server = smtplib.SMTP ('exchange.pironet-ndh.local')
smtp_server.sendmail (absender, empfaenger, msg)
smtp_server.quit()



---

ich erhalte folgende Fehlermeldung :

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\kklepers\Desktop\mail.py", line 14, in ?
    msg = msg + body
TypeError: cannot concatenate 'str' and 'list' objects


---

was ich will ist klar oder ?

mfg KRIS

Edit (Leonidas): Code in Python-Tags gesetzt.
pwneD ! ;(
Kris
User
Beiträge: 4
Registriert: Dienstag 8. November 2005, 14:28
Wohnort: Köln
Kontaktdaten:

Beitragvon Kris » Donnerstag 10. November 2005, 14:17

Code: Alles auswählen

# Email
import sys, smtplib

empfaenger = sys.argv[1]
absender = sys.argv[2]
betreff = sys.argv[3]
datei = open (sys.argv[4], 'r')
body = datei.readlines ()
datei.close ()

msg = "To: %s\n" %empfaenger
msg = msg + "From: %s\n" %absender
msg = msg + "Subject: %s\n\n" %betreff 
for item in body : msg = msg + item

smtp_server = smtplib.SMTP ('exchange.pironet-ndh.local')
smtp_server.sendmail (absender, empfaenger, msg)
smtp_server.quit()


---

so funktionierts :)

sry war schneller ;(

Edit (Leonidas): Code in Python-Tags gesetzt.
pwneD ! ;(
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 10. November 2005, 14:54

Nächstes mal bitte in [python] tags :-)
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 10. November 2005, 17:01

blackbird hat geschrieben:Nächstes mal bitte in [python] tags :-)

ACK.
Die meiste Zeit hier verbringe ich damit, Code in Tags zu setzen :(
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Donnerstag 10. November 2005, 23:58

Ich würde ja

Code: Alles auswählen

bode = datei.read()


benutzen. Dann wird die Datei komplett als eine einzige Zeichenkette eingelesen und nicht als Liste von Zeilen. Die fügst Du ja eh wieder zusammen, also warum erst trennen.

Zusammenfügen wäre übrigens mit

Code: Alles auswählen

msg + ''.join(body)


schneller und "pythonischer".

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]