Email Anlage versenden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
erdmulch
User
Beiträge: 229
Registriert: Samstag 17. Juli 2010, 19:50

Freitag 5. Januar 2018, 00:24

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()
__deets__
User
Beiträge: 3971
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 5. Januar 2018, 00:40

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.
erdmulch
User
Beiträge: 229
Registriert: Samstag 17. Juli 2010, 19:50

Samstag 6. Januar 2018, 20:18

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."

__deets__
User
Beiträge: 3971
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 6. Januar 2018, 22:57

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?
Antworten