Python实现多行输入发送邮件仅收到最后一行问题求助
Python多行输入发邮件仅显示最后一行问题修复
根因
你在循环读取多行输入时,已将每一行内容追加到contents列表存储,但最终构造邮件正文时,错误使用了循环结束后最后一次读取的line变量赋值给msg_body,因此仅发送了最后一行内容。
修复代码
只需修改邮件正文赋值的逻辑,将contents列表中的所有行用换行符拼接为完整正文即可,修改对应代码段如下:
# content sender = ans1 reciever = "rockzombie005@gmail.com" password = ans0 # 拼接所有输入行作为邮件正文 msg_body = '\n'.join(contents)
可选优化
原代码中密码输入使用普通input会在终端显示输入内容,可引入getpass模块实现隐藏输入:
# 顶部导入模块新增 import getpass # 替换密码输入行 ans0 = getpass.getpass("Your gmail password(Not shown): ")
内容的提问来源于stack exchange,提问作者RockZombie
相关产品推荐
相关产品推荐

