自主抓取IMAP流量

自主抓取IMAP流量

根据测试需求,需要抓取IMAP流量包,使用wireshark + Python(IMAP库)实现

实现Python 代码

不废话直接上; 注意别用SSL,这个是加密无法被抓包;port:143是公开;至于文件夹我这边是自己尝试出来的,QQ邮箱文件夹应该都是大写的,可以参考如下信息

已发送邮件(Sent Mail/Sent Items):包含了用户发送出去的所有邮件。
草稿箱(Drafts):存储了尚未完成或尚未发送的邮件草稿。
垃圾邮件(Junk/Spam):自动过滤出来的垃圾或疑似垃圾邮件。
已删除邮件(Trash/Deleted Items):用户删除的邮件会暂时存放在这里,直到清空该文件夹。
星标邮件(Starred/Favorites):根据邮箱设置,可能会有专门收集标记为重要或星标的邮件的文件夹。
归档邮件(Archive):用户可能将不再需要留在收件箱但又想保留的邮件移到此文件夹。
重要邮件(Important):如果设置了优先级筛选,可能会有单独收集标记为重要的邮件文件夹。
对于QQ邮箱,正确的已发送邮件文件夹名称可能是Sent或者已发送(如果是中文版客户端或界面)。因此,你应该尝试使用服务提供商所使用的实际文件夹名称。

import imaplib
import email
class Mail:
    def __init__(self, username, password, host, port):
        self.username = username
        self.password = password
        self.host = host
        self.port = port
        self.mail = imaplib.IMAP4(self.host, self.port)
        self.mail.login(self.username, self.password)
        self.mail.select('inbox')
        self.mail.list()
        self.mail.close()
        self.mail.logout()

    def send_mail(self, to, subject, content):
        mail = imaplib.IMAP4(self.host, self.port)
        mail.login(self.username, self.password)
        mail.select('inbox')
        mail.list()
        mail.close()
        mail.logout()
        mail = email.message.EmailMessage()
        mail['From'] = self.username
        mail['To'] = to
        mail['Subject'] = subject
        mail.set_content(content)

        mail.send()
        print('邮件发送成功')
        mail.quit()



    def receive_mail(self):
        mail = imaplib.IMAP4(self.host, self.port)
        mail.login(self.username, self.password)
        inbox = mail.select('INBOX')
        print('全部邮件', inbox)
        mail.list()
        # mail.close()
        # mail.logout()

    def receive_mail_with_content(self):
        mail = imaplib.IMAP4(self.host, self.port)
        mail.login(self.username, self.password)
        UnSeen = mail.select('Junk')
        print('垃圾邮件', UnSeen)
        mail.list()
        # mail.close()
        # mail.logout()

    def receive_mail_SENT_content(self):
        mail = imaplib.IMAP4(self.host, self.port)
        mail.login(self.username, self.password)
        UnSeen = mail.select('SENT')
        print('已发送', UnSeen)
        mail.list()


mail = Mail('xxx', 'xxx', 'imap.qq.com', 143) 
mail.receive_mail()
mail.receive_mail_with_content()
mail.receive_mail_SENT_content()'''

在这里插入图片描述

wireshark 进行抓包

设置抓包过滤

已知代码中 port= 143 , 所以 过滤我们可以直接用tcp port == 143 实现

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值