python - SMTP getpass.getpass() 不接受输入,你能解决这个问题吗?

标签 python smtp getpass

我正在尝试创建受密码保护的服务器,但是当我输入密码时,输出不允许我输入密码。所有其他输入都正常工作 getpass不让我输入。请帮忙

import smtplib, json_store_client, getpass, hashlib, datetime, sys
from termcolor import colored
from time import sleep, ctime 


with smtplib.SMTP('smtp.gmail.com',587) as smtp:
    smtp.ehlo() #starts email procedure
    smtp.starttls() #encrypts
    smtp.ehlo() #starts the email procedure again
    pw=getpass.getpass(colored("Enter password:\n","green"))
    global attemptpw
    attemptpw = 0
    try:
        smtp.login("********@gmail.com",pw)
        #**** is my email, I just don’t want to show it
        x=chat("[MOD] {} ".format(opt2),True
     except:
        print(colored("Invalid Admin password","red"))
        sleep(1)
      else:
        print("password entered:",pw)

对于我正在使用的代码:
<强> repl.it

编辑: 我的代码在这里: repl.it/codingandmemes

最佳答案

在 repl.it 中测试了您的原始代码并且它有效,只需在 pw=getpass.getpass(colored("Enter password:\n") 行后面添加 print(pw) 即可,“绿色”)) 进行验证。

getpass 实现无回声功能 (doc here)这意味着无论您输入什么,它都不会打印在屏幕上,您可能期望小点 (••••••) 代表您输入的每个密码字符,无回显意味着什么都没有,甚至没有小点。

这是在 UNIX 系统上广泛实现的一项功能,旨在增加一点额外的安全性,以便其他人无法得知您的密码长度,请参阅 this post .

关于python - SMTP getpass.getpass() 不接受输入,你能解决这个问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58863650/

相关文章:

python - 如何从两个表创建二进制标签

Java 邮件逻辑 : Could not convert socket to TLS

java - 如何从自定义 Gmail 域发送邮件?

api - 通过 Gmail SMTP API 发送预定的电子邮件

python - 从 shell 脚本读取 getpass

python - 如何删除 DataFrame 字符串中的特殊字符(例如 ",")?

Python 输入 - 有没有办法避免导入可选类型(如果它是 None 的话)?

python - sklearn 错误 ValueError : Input contains NaN, 无穷大或对于 dtype ('float64' 的值太大)

python - 如何使用 python 获取所有 Windows/Linux 用户而不仅仅是当前用户