python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。 POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然会回复一个信息。pop3命令码如下: 命令 poplib方法 参数 状态 描述 ----------------------------------------------------------------------------------------------- USER user username 认可 用户名,此命令与下面的pass命令若成功,将导致状态转换 PASS pass_ password 认可 用户密码 APOP apop Name,Digest 认可 Digest是MD5消息摘要 ----------------------------------------------------------------------------------------------- STAT stat None 处理 请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数 UIDL uidl [Msg#] 处理 返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的 LIST list [Msg#] 处理 返回邮件数量和每个邮件的大小 RETR retr [Msg#] 处理 返回由参数标识的邮件的全部文本 DELE dele [Msg#] 处理 服务器将由参数标识的邮件标记为删除,由quit命令执行 RSET rset None 处理 服务器将重置所有标记为删除的邮件,用于撤消DELE命令 TOP top [Msg#] 处理 服务器将返回由参数标识的邮件前n行内容,n必须是正整数 NOOP noop None 处理 服务器返回一个肯定的响应 ---------------------------------------------------------------------------------------------- QUIT quit None 更新 python的poplib也针对这些命令分别提供了对应的方法,上面在第二列里已经标出来。收取邮件的过程一般是: 1. 连接pop3服务器 (poplib.POP3.__init__) 2. 发送用户名和密码进行验证 (poplib.POP3.user poplib.POP3.pass_) 3. 获取邮箱中信件信息 (poplib.POP3.stat) 4. 收取邮件 (poplib.POP3.retr) 5. 删除邮件 (poplib.POP3.dele) 6. 退出 (poplib.POP3.quit) 注意的是,上面我在括号里写的是使用什么方法来完成这个操作,在实际的代码中不能那样写,应该是创建poplib.POP3的对象,然后,调用这个对象的方法。比如: poplib.POP3.quit 应该理解为 a = poplib.POP3(host) a.quit() 下面看看实际的代码:
之前的文章中我们也提到了,基础配置需要打开 POP3/SMTP/IMAP,针对不同邮箱有不同的操作,并以网易 163 邮箱和 QQ 邮箱 举例说明,如果你不熟悉,可以查看Python发送邮件基础代码讲解
因为工作需要,公司给每个员工都分配了一个邮箱 公司的各种业务都通过邮箱发送。虽然给每个员工的电脑都设置pop3登录但是他们的程序设定有保存服务器副本,所以大量邮件使得服务器存储占用巨大。
版权声明:欢迎交流,菲宇运维!
收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的就是POP3协议。
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了。
本篇博客实现的功能是基于python来完成的自动收发邮件从而实现手机远程控制电脑的功能。
SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3。 Python内置一个poplib模块,实现了POP3协议,可以直接用来收邮件。 注意到POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP协议很像,SMTP发送的也是经过编码后的一大段文本。 要把POP3收取的文本变成可以阅读的邮件,还需要用email模块提供的各种类来解析原始文本,变成可阅
工作中,我们基本上都用过电子邮件的客户端,比如说 OutLook,Foxmail,从配置项可以知道,SMTP 协议用于发送邮件,POP3 和 IMAP 协议用于接收邮件。其实很多编程语言都有这类协议的实现,Python 自然也不例外,标准库 smtplib、poplib、imaplib 是对应协议的实现。
SMTP 全称 Simple Mail Transfer Protocol,中文译为简单邮件传输协议,它能跨越网络传输邮件,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现进程与其他网络之间的邮件传输。
import poplib import sys import smtplib from email.mime.text import MIMEText import os from email.header import decode_header import email import time def checkemail(): try: p = poplib.POP3('pop
前面我们讲到的接收邮件中,接收到的邮件把它打印出来,会发现是一堆很复杂的东西,很难阅读。这就需要我们去解析它
上一节内容中,我们通过Python进行了电子邮件发送功能的处理 本节内容内容主要讲解接收邮件功能的处理
邮箱的服务 POP 协议 邮局协议(Post Office Protocol,简称POP),POP是第一个用于下载邮件的协议,POP 协议的最新版本是第三版,也称为 POP3。 用python登陆QQ
数据库类我们之前的文章就已经讲过了,详细可以查看这两篇文章(Python连接MySQL数据库和python使用cx_Oracle库连接oracle服务器)
继上一次的 群聊机器人开发 之后的工作流程再优化,上次研究完群聊机器人之后,开发了三个机器人替我处理表格并自动发出去。其中有一项工作的数据源来源于邮件,还需要我自己手动下载,放入指定位置才可以处理!虽然比之前方便了很多,但是还是想更方便些。(自己淘汰自己的路上越走越远o(╥﹏╥)o),于是想着能不能用代码下载,研究了半天还终于整出来了,而且还是两种方法!
------------------------mailconfig.py popservername = 'pop.secureserver.net' popusername = 'PP4E@learning-python.com'
效果是屏幕显示“Email:”提示用户进行输入,然后将从键盘读取的输入写入email这个变量中。
import os import time import poplib import email import smtplib from email.header import decode_header from email.mime.text import MIMEText from email.header import Header # 读取Email,获取Email主题 def getEmailSubject(): read = poplib.POP3('pop.163.com')
#-*- encoding: utf-8 -*- import sys import locale import poplib from email import parser import email import string # 确定运行环境的encoding __g_codeset = sys.getdefaultencoding() if "ascii"==__g_codeset: __g_codeset = locale.getdefaultlocale()[1] # def obj
# -*- coding: cp936 -*- import os,sys,time,smtplib,poplib #python -m BaseHTTPServer 80 在运行里面运行 ####################################### #以下为发送邮件 username="*****@126.com" username2='****@qq.com' password="****" def sendmail(): smtp_server='smtp.126.com' smtp = smtplib.SMTP(smtp_server) smtp.login(username,password) smtp.set_debuglevel(1) smtp.sendmail(username,username2,'From:mailadmin@126.com,\rTo:******@qq.com\rSubject:helloe,\r\n\r\n...this is testing ') a= smtplib.stat() #print "sendmail,,,,OK !" #print "sendmail,,,,Fail !" smtp.quit() #以下为接受邮件 def getmail(): print "请稍后,正在积极联系中,,," POP_server='pop.126.com' pop=poplib.POP3(POP_server) pop.user(username) pop.pass_(password) stat_=pop.stat() list_=pop.list() pop.retr(14)#根据邮件编号获取邮件内容 #pop.dele()#根据邮件编号将其标记为删除 print list_ pop.quit() sendmail() getmail ##################################### print "当前目录路径:",os.getcwd() print "当前目录下的文件和目录:" f=open('E:\\1.txt','r+') #打开文件 f.seek(0) print f.read() #读取整个文件 f.seek(0) print f.readline() #返回文件第一行 f.seek(0) print f.readlines() #返回文件所有行 f.seek(2) #移位到第15个字符 print f.readline() print f.tell() f.seek(0) test = f.readlines() for line in test: print (line) #line = int(line) #print line * 2 #f.write(line * 2) f.close() #关闭文件 ##################################### ''' 九九乘法表如下: 1. for m in range(1,10): for n in range(1,10): print(n,'*',m,'=',m*n,") 2. for m in range(1,10): for n in range(1,10): if m<=n: print(n,'*',m,'=',m*n," ",end="") print("\n") #3. print("\n\t\t\t九九乘法表") for m in range(1,10): print(" ") for n in range(1,m+1): print(n,'*',m,'=',m*n," ",end="") print("\n") ##################################### ''' #pubic 函数: def erro_1(a): print("\t\t 该功能暂时无法使用!") def chakan(): return "你选着【查看】" def xiugai(): return "你选着【修改】" def tianji
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端上的操作(如移动邮件、标记已读等)不会反馈到服务器上
urllib模块 image.png urllib.parse image.png image.png urllib.request:模拟get/post :需要增加 image.png image.
1、发送邮件模型: from smtplib import SMTP n = SMTP('smtp.yourdomain.com') ... n. quit() 2、SMTP类方法:
基于pyqt5 和 smtplib pop3标准邮箱协议开发邮件客户端 发送 SMTP #!/usr/bin/env python #-*- coding:utf-8 -*- #@Time: 2018/5/2上午11:27 #@Author:zhangrongwu #@File:qt_email.py from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QMainWindow, QApplication imp
Python程序实现发送、读取邮件来控制电脑的关机与重启(作为py2exe打包成.exe可执行程序的基础文件)
今天给大家分享的内容为:python程序实现发送、读取邮件来控制电脑的关机与重启(作为py2exe打包成.exe可执行程序的基础文件)
https://blog.csdn.net/weixin_35955795/article/details/52881044
python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。 多进程间共享数据,可以使用 multiprocessing.Value 和 multiprocessing.Array
这篇文章主要介绍了Python自动发送和收取邮件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着老师来一起学习学习吧
之前在博客上看到了使用python通过微信的接口,与微信交互的方式来控制电脑的摄像头、开关机等。但是这种方式需要首先在python上登录自己的微信才可以,同时微信端也会有已经在网页端登录的字样,很显眼。因此想到了另外一种交互方式,通过邮件进行交互。
某次项目之后,突发奇想写一个全协议的邮箱暴破工具,与kali中的邮箱账户枚举工具配合使用更佳。(metasploit辅助模块:smtp_enum,smtp-user-enum工具)
今天写一下python加selenium自动化登录,包括获取邮箱验证码和普通验证码两种。
实际上使用任何可以发送邮件的东西都可以。但是因为微信比较普及,所以就用微信的发送邮件功能做一个测试吧~~
Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫、网络工具、科学计算、树莓派、Web开发、游戏等各方面都可以派上用场。同时无论在哪种平台上,都可以用 Python 进行系统编程。
网络编程 网络: 网络协议: 一套规则 网络模型: 七层模型-七层-理论 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 四层模型-实际应用 链路层 网络层 传输层 引用层 每一层都有相应的协议负责交换信息或者协同工作 TCP/IP 协议族 IP地址:负责在网络上唯一定位一个机器 IP地址分ABCDE类 是由四个数字段组成,每个数字段的取值是0-255 192.168.xxx.xxx: 局域网ip 127.0.0.1: 本机 IPv4, IPv6 端口 范围: 0-65535 知名端口:0-1
我的博客已迁移到xdoujiang.com请去那边和我交流 一、基础环境 1、角色、ip、版本、内核 serverA 10.1.10.117 3.2.0-4-amd64 7.8 python readline rlcompleter python-2.7.3 二、python tab键自动补齐命令安装 1、安装python apt-get -y install python 2、查看下目前已安装的模块 python Python 2.7.3 (default, Mar 13 2014, 11:03:55
只要标题够唬人,你们就会点进来,内容什么的其实都无所谓,无聊已经逼迫帅气的我做出了这种东西?!
Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测工具)。Python允许开发者编写脚本处理远程服务,处理二进制文件,与C语言库(或者Java的Jython/。Net的IronPython)以快速且简单的方式进行交互。它“内置电池”原则的巨大标准库,为开发省去对其它框架或者语言的依赖。我想跟读者们分享个人
学Python最简单的方法是什么?推荐阅读:Python开发工程师成长魔法 Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测工具)。Python允许开发者编写脚本处理远程服务,处理二进制文件,与C语言库(或者Java的Jython/。Net的IronPython)以快速且简单的方式进行交互。它“内置电池”原则的巨大标准库,为开发省去对其它框架或者语言的依赖。我想跟读者们分享个人 的python编程经历,这些也许会对你未来
众所周知,Python有庞大的库资源,有官方标准库以及第三方的扩展库。每个库都一把利器,能帮助我们快速处理某方面的问题。作为一名python的初学者,当把基本的语法、列表和元组、字典、迭代器、异常处理、I/O操作、抽象等知识点学完之后。我建议把官方常用的标准库也随便学下来。讲真的,你知道这些库之后,你会有种相见恨晚的感觉。
流行的有文件传输协议(FTP),Unix-to-Unix复制协议(UUCP),以及网页的超文本传
IP地址:用来在网络中标记一台电脑,比如 192.168.1.1 ,在本地局域网上是唯一的。
一定要使用 import os 而不是 from os import * 。这将避免内建的 open() 函数被 os.open() 隐式替换掉,它们的使用方式大不相同。
让用户提交 Python 代码并在服务器上执行,是一些 OJ、量化网站重要的服务,很多 CTF 也有类似的题。为了不让恶意用户执行任意的 Python 代码,就需要确保 Python 运行在沙箱中。沙箱经常会禁用一些敏感的函数,例如 os,研究怎么逃逸、防护这类沙箱还是蛮有意思的。
Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测工具)。Python允许开发者编写脚本处理远程服务,处理二进制文件,与C语言库(或者Java的Jython/。Net的IronPython)以快速且简单的方式进行交互。它“内置电池”原则的巨大标准库,为开发省去对其它框架或者语言的依赖。我想跟读者们分享个人的Python编程经历,这些也许会对你未来的工作有所帮助,让这个世界变得更加安全一些(注:大多数例子基于Python3.0以上版本编写的,有些可以兼容python所有分支)。
Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测工具)。Python允许开发者编写脚本处理远程服务,处理二进制文件,与C语言库(或者Java的Jython/。Net的IronPython)以快速且简单的方式进行交互。它“内置电池”原则的巨大标准库,为开发省去对其它框架或者语言的依赖。
9.Python 2to3:自动将Python 2.x代码转换成Python3.x代码
领取专属 10元无门槛券
手把手带您无忧上云