【发布时间】:2019-01-31 11:04:14
【问题描述】:
我编写了一段非常简单的代码来将简单的字符串发送到我的 gmail,并且在使用小字符串时效果很好; 当我开始使用更大的字符串时,我收到了一堆加密文本,而不是普通字符串。
有人遇到这种问题吗?它是否与安全有关,是否可以避免?
def send_email(sender_email,receiver_email,password,txt, subject) :
message = MIMEMultipart(txt)
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver_email
# Turn these into plain/html MIMEText objects
part1 = MIMEText(txt, "plain")
message.attach(part1)
context = ssl.create_default_context()
with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, txt)
这是我收到的:
TsK6IEFsYXJtZTogKDcyCk1lbnNhZ2VtOiAgJ0FWSVNPIC0gU0VSVk8nClRpcG8gZGUgRXJybzog
ICdFJwpTdGF0dXMgcGFyYWRvOiAgJ0gnClByb2NlZGltZW50byBkZSBlbGltaW5hw6fDo286ICAn
TycKRXhpYmnDp8Ojb286ICAnQXp1bCcKQ2F1c2E6ICAnTyBzZXJ2byBtb3RvciBlc3TDoSBjYXJy
ZWdhZG8gZGUgZm9ybWEgYW5vcm1hbC4nCkHDp8OjbzogICdEZXNsaWd1ZSBvIE5DIGUgYSBtw6Fx
dWluYQo=
【问题讨论】:
-
它是base64,在谷歌搜索解码器
-
问题是,我假设要接收电子邮件的人无法访问解码器,或者需要立即阅读文本
-
为了解决这个问题,您需要更改
MIMEText的编码机制,默认为base64。您可以在encoders docs 中获取有关编码机制的更多详细信息 -
我可以问一个问题吗?如果您以后不使用它,为什么要构建
message?还是在代码的不同部分? -
1:你可能想用
MIMEText是的,2:server.sendmail(sender_email, receiver_email, txt)应该是server.sendmail(sender_email, receiver_email, message)
标签: python python-3.x