大家好我是python的新手,这是我真正的第一个程序。 我正在发送电子邮件
msg = Message("Hello",
sender="e@gmail.com",
recipients=["e@gmail.com"])
msg.body = request.form['firstname']
mail.send(msg)
request.form['firstname'] # some field in form which can be in Russian.
但在我的邮件上,我得到的不是字母,而是这样的符号:� 我该怎么办?
答案 0 :(得分:0)
尝试从俄语字符集解码到Ascii:
msg.body = request.form['firstname'].decode('cp855')
答案 1 :(得分:0)
我认为这是python scrypt的编码问题。我提出以下解决方案:
# -*- coding: cp1251 -*-
import smtplib
from email.mime.text import MIMEText
fromaddr = 'user_me@gmail.com'
toaddrs = 'user_you@gmail.com'
msg = MIMEText('Текст на русском', 'plain')
username = 'username@gmail.com'
password = 'pwd'
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg.as_string())
server.quit()
我用我的gmail帐户查看了它并获得了正确的俄语字符。
PS 我的环境是P3.4 + VS2012