Windows 7で動作し、PyCharm 2016.2.3を使用している場合は問題ありません。Pythonのgetpass.getpass()関数が機能していませんか?
とにかく、受信者に電子メールを送信するプログラムを作成しようとしていますが、コンソールにログインするためのパスワードを要求します。
入力を隠すのにgetpass.getpass()
が使用できると聞きました。ここで
は私のコードです:
import smtplib
import getpass
import sys
print('Starting...')
SERVER = "localhost"
FROM = "[email protected]"
while True:
password = getpass.getpass()
try:
smtpObj = smtplib.SMTP(SERVER)
smtpObj.login(FROM, password)
break
except smtplib.SMTPAuthenticationError:
print("Wrong Username/Password.")
except ConnectionRefusedError:
print("Connection refused.")
sys.exit()
TO = ["[email protected]"]
SUBJECT = "Hello!"
TEXT = "msg text"
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
smtpObj.sendmail(FROM, TO, message)
smtpObj.close()
print("Successfully sent email")
しかし、私は自分のコードを実行すると、ここに出力されます:
Starting...
/Nothing else appears/
私はgetpass()
のデフォルトのプロンプトは'Password:'
である知っているが、私は同じ結果を得ますプロンプト文字列を渡しても。
提案がありますか?
EDIT:コードは文字列を印刷した後も無期限に実行されますが、それ以外のメッセージは表示されず、電子メールは送信されません。
を動作するはずコマンドプロンプト経由でコードを実行する
ありPyCharm、経由で起動しているということです実際にWindowsコンソールからPythonスクリプトを起動しますか? – pvg
それはそうしました。今私は馬鹿のように感じる。 – TheDude