大家好,在我们日常工作中经常会遇到邮箱密码忘记的情况,这个时候就得找IT部门去重置密码。本着自己动手丰衣足食的想法,今天我们就来看看如何利用python获取到本地foxmail设置的邮件登录密码。下面我们通过三步来实现获取邮箱登录密码。
第一步:获取foxmail配置的服务器地址
我们在账户设置里面找到收件人服务器复制出来备用。
第二步:修改hosts文件
在以下路径:windows\system32\drivers\etc 找到hosts文件利用记事本打开 输入127.0.01 xx.xxx.com(上面复制的收件服务器) 保存后备用。
第三步:利用python编写一个socket监控服务
具体代码如下:
import socket
if __name__ == "__main__":
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("127.0.0.1", 110))
s.listen(1)
print("ready")
while 1:
conn, addr = s.accept()
print("connected by "+str(addr))
conn.send("+OK, POP3 server is ready.\r\n".encode("UTF-8"))
while 1:
data=conn.recv(1024).decode("UTF-8")
if(data.find("QUIT") == 0):
conn.close()
break
else:
if(data.find("USER") == 0 or
data.find("PASS") == 0):
print(data.strip())
conn.send("+OK\r\n".encode("UTF-8"))运行当前python程序,程序自动监控中,下面见证奇迹的时刻到了,当我们在foxmail中点击收件的时候,程序自动将用户名和密码显示出来了。
好了我们如愿以偿获取到了foxmail的密码,当然你需要将hosts中添加的文字删除不然你将无法正常收发邮件。
POP协议科普
协议支持离线邮件处理,当邮件发送到服务器后,电子邮件客户端会调用邮件客户端程序,下载所有未阅读的电子邮件(这种离线访问模式是一种存储转发服务).当邮件从邮件服务器发送到个人计算机上,同时邮件服务器会删除该邮件(但是很多POP3服务器都支持“下载邮件,服务器并不删除邮件”,也就是说在POP3中改进了POP协议).
命令响应
POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。服务器响应是由一个单独的命令行组成或多个命令行组成,响应第一行以ASCII文本+OK或-ERR(OK指成功,-ERR指失败)指出相应的操作状态是成功还是失败。
三种状态
认证状态,处理状态和更新状态。当客户机与服务器建立连接时,客户机向服务器发送自己身份(这里指的是账户和密码)并由服务器成功确认,即客户端由认可状态转入处理状态,在完成列出未读邮件等相应的操作后客户端发出quit命令,退出处理状态进入更新状态,开始下载未阅读过的邮件到计算机本地之后最后重返认证状态确认身份后断开与服务器的连接。
感兴趣的小伙伴可以关注私信我领取已打包好的exe文件,只要修改下hosts文件就能直接获取到邮箱密码。
感谢小伙伴们的支持,希望得到大家的关注和点赞,我们下期见。