Seite 1 von 1

Email Anlage versenden

Verfasst: Freitag 5. Januar 2018, 00:24
von erdmulch
Hallo Forum,

ich habe folgenden Code:
Kann mir jemand sagen wie ich bei dieser Email auch eine Anlage hinzufügen kann?

vielen Dank im voraus

Code: Alles auswählen

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

senderEmail = "jp42@gmx.de"
empfangsEmail = "samuel.brinasdfasdfkmann@googlemail.com"
msg = MIMEMultipart()
msg['From'] = senderEmail
msg['To'] = empfangsEmail
msg['Subject'] = "Deine Pflanze verdurstet"

emailText = "Diese E-Mail kommt von deinem <b>Raspberr</b> Pi"
msg.attach(MIMEText(emailText, 'html'))

server = smtplib.SMTP('mail.gmx.net', 587) # Die Server Daten
server.starttls()
server.login(senderEmail, "deinPasswort") # Das Passwort
text = msg.as_string()
server.sendmail(senderEmail, empfangsEmail, text)
server.quit()

Re: Email Anlage versenden

Verfasst: Freitag 5. Januar 2018, 00:40
von __deets__
Ich würde dir zu einem Paket wie marrowmail raten. E-Mail ist *schwer*. Misch noch Umlaute dazu, und du wirst deines Lebens nicht froh.

Re: Email Anlage versenden

Verfasst: Samstag 6. Januar 2018, 20:18
von erdmulch
hab nun simplemail verwenden.
das senden der Anlage funktioniert ohne Probleme
Allerdings werden die Umlaute mit ??? dargestellt.

kann mir jemand sagen was ich falsch mache?
die Codierung habe ich auf utf 8

vielen Dank im voraus

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Komplexeres Beispiel mit Umlauten und Anhaengen
from simplemail import Email

email = Email()

# Ansender
email.from_address = "server@gp-server.gp"
email.from_caption = "Gerolds Server"

# Empfaenger
email.recipients.add("gerold@gp-server.gp", "Gerold Penz (lokal)")
email.recipients.add("gerold.penz@tirol.utanet.at", "Gerold Penz (utanet)")

# Betreff
email.subject = "Komplexeres Beispiel"

# Nachricht
email.message = \
    "Das ist ein etwas komplexeres Beispiel\n" + \
    "\n" + \
    "Hier steht normaler Text mit Umlauten (öäüß).\n" + \
    "Groß kann man sie auch schreiben -- ÖÄÜ.\n" + \
    "\n" + \
    "mfg\n" + \
    "Gerold\n" + \
    ":-)"

# Anhaenge
email.attachments.add_filename("/home/gerold/font_shadow_fuzzy.jpg")
email.attachments.add_filename(
    "/home/gerold/GEROLD/Bilder und Videos/Eigene Fotos/Glock 19 auf Holzplatte.JPG"
)

# Senden
if email.send():
    print "Nachricht gesendet."
else:
    print "Die Nachricht wurde nicht versendet."


Re: Email Anlage versenden

Verfasst: Samstag 6. Januar 2018, 22:57
von __deets__
Na du benutzt ja kein unicode-Literal. Sprich

u"irgendwas mit ümläuten"

(falls du Python2 benutzt, gehe ich mal von aus)

Und ausserdem muss auch dein Editor das richtige Encoding eingestellt haben. Kannst du deinen Source mal bei pastebin einstellen?