在烧瓶应用程序中,我正在向用户发送电子邮件:
msg = MIMEMultipart('alternative')
msg['Subject'] = 'About resetting your password'
...
reset_key = os.urandom(64).encode('base64')
link = request.host_url + "reset_pwd?rk=" + reset_key
html = '<html><body><a href="' + link + '">Reset password</a></body></html>'
part = MIMEText(html, 'html')
msg.attach(part)
...
server = smtplib.SMTP(mail_server)
server.starttls()
server.login(mail_username, mail_password)
server.sendmail(mail_username, to_addr, msg.as_string())
server.quit()
但是,reset_key 有斜线和其他非安全字符。所以我做了
link = request.host_url + "reset_pwd?rk=" + flask.escape(reset_key)
但是当我检查我的电子邮件时,不知何故链接被破坏了,也许没有逃脱。如何正确转义文本?
编辑:更正了代码中的错字。