[Bottle] Send Mail

Django, Flask, Bottle, WSGI, CGI…
Antworten
DanJJo
User
Beiträge: 90
Registriert: Mittwoch 13. Februar 2013, 18:35

Hallo Ihr,

Ich hab mal wieder eine Frage zu Bottle.

Ich verschicke über eine methode e-mails aber leider möchte er keine mails mit "ä", "ö", "ü" etc versenden...weiß einer woran das liegt?

einmal die fkt.

Code: Alles auswählen

@route("/send_mail_submit", method='POST')
@route("/send_mail_submit/", method='POST')
def send_mail_submit (db):
	if cookie():
		data = request.forms.getall('users')
		if data:
		  zahl = len(data)
		  sub = data[zahl-2].decode('utf-8')
		  msg = data[zahl-1].decode('utf-8')
		  to = ""
		  data.pop(zahl-1)
		  data.pop(zahl-2)
		  zahl=zahl-2
		  while zahl != 0:
		    to = to + data[zahl-1] + ","
		    data.pop(zahl-1)
		    zahl=zahl-1 
		  sendMail(to,sub,msg)
		return template("hauptmenu", adminpw=True)
	else:
		return template("login")


def sendMail(to,sub,msgs):
	mail_user = 'bla@bla.de'
	mail_pwd = 'bla'
	smtpserver = smtplib.SMTP("smtp.bla.de",25)
	smtpserver.ehlo()
	smtpserver.starttls()
	smtpserver.ehlo
	smtpserver.login(mail_user, mail_pwd)
	msg = Message() 
	msg.set_payload(msgs.decode('utf-8')) 
	msg["Subject"] = sub 
	msg["From"] = mail_user 
	msg["To"] = to
	smtpserver.sendmail(mail_user, to, msg.as_string())
	smtpserver.close()

danke! :)
DanJJo
User
Beiträge: 90
Registriert: Mittwoch 13. Februar 2013, 18:35

habs gelöst....Lösung sieht wie folgt aus

Code: Alles auswählen

	charset = Charset('utf-8')
	charset.header_encoding = QP
	charset.body_encoding = QP
	msg.set_charset(charset)
in die Sendmail fkt und in send_mail_submit

Code: Alles auswählen

msg = data[zahl-1]
ohne .decode('utf-8')

:mrgreen:
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@DanJJo: Du solltest Dich am besten mal mit den Grundlagen von Listen in Python vertraut machen. Die ganze »zahl«-Geschichte sieht zum davonlaufen aus. »pop« liefert auch das Elemente, das gepoppt wurde zurück. Ohne Argument wird das letzte Element genommen:

Code: Alles auswählen

data = request.forms.getall('users')
if data:
    msg = data.pop()
    sub = data.pop()
    to = ','.join(data)
    sendMail(to,sub,msg)
Antworten