python之旅-日记9(记录零基础自己的每天学习)

CMD 操作命令
win+R 打开运行面板
dir 当前目录
date 当前系统日期
time 当前时间
(cd 新路径)
ver win版本
(copy 文件 目标路径 )
shutdown -s关闭 (-t 时间) -r重启

通过python程序执行cmd
os.system(‘命令’) /s /r/t
subprocess.Popen(‘命令’ shell=Ture程序由shell执行)

电子邮件编程
(发送)SMTP编程:1.连接SMTP服务器
引入smtplib模块,s = smtplib.SMTP(服务器)
2.执行EHLO命令判断是否相应
s.ehlo() 返回一个元组 第一个元素200-299为正确返回值
无回应 SMTPHeloError异常
3.判断SMTP服务器是否支持指定属性
s.has_extn(属性) 返回布尔值
size 允许发送邮件大小
startls 服务器是否支持TLS
auth 服务器是否支持认证
4.发送邮件
s.sendmail(发件人地址,收件人地址,邮件内容)
sys.exit(0)无错误退出 1-127有错误退出
sys.argv[]是用来获取命令行输入的参数的(参数和参数之间空格区分),
sys.argv[0]表示代码本身文件路径,所以从参数1开始,表示获取的参数了
raise 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行
s.login(username,password) 登陆
Socket模块常见的异常有:
Socket.error 与一般I/O和通信问题有关的
Socket.gaierror 与查询地址有关的
Socket.herror 与其他地址错误有关
Socket.timeout 与一个socket上调用settimeout()后,超时处理有关
(接收)POP编程:1.连接pop3服务器
from poplib import POP3 s.smtplib.POP3(server)
2.执行USER命令
p.user(username) 发送用户名
3.执行PASS命令
p.pass(password) 发送用户密码
4.执行STAT命令
ret = p.stat() 返回元组 邮件数和共有多少字节
5.执行TOP命令
list = p.top(n,m) 返回n号邮件的前m行内容
6.执行LIST命令
ret = p.list() 返回元组 邮件服务器上邮件的ID和大小
7.执行RETR命令
ret = p.retr(n) 返回邮件全部文本 n读取邮件的序号

SMTP_mail.py

import smtplib
import sys
import getpass
import socket
if len(sys.argv) < 4:
    print("[*]usage: %s server fromaddr toaddr" %sys.argv[0])
    sys.exit(1)

server = sys.argv[1]
fromaddr = sys.argv[2]
toaddr = sys.argv[3]

message = '''
TO: %s
From: %s
Subject: Test Message from 32.py

Hello ,This a simple SMTP_mail exmaple.
''' %(toaddr,fromaddr)

def auth_login():
    print('input your username:')
    username = input()
    password = getpass.getpass('input your password:')#获取密码控制台不回显
    try:
        s = smtplib.SMTP(server)
        print(s.ehlo())
        code = s.ehlo()[0]
        print(code)
        usersmtp = 1
        if not (200 <= code <= 299):
            usersntp = 0
            code = s.ehlo()[0]
            if not (200 <= code <= 299):
                raise SMTPHeloError(code,resp) 
        if usersmtp and s.has_extn('size'):
            print('允许发送邮件的大小' + s.esmtp_features['size'])
            if len(message) > int(s.esmtp_features['size']):
                print('文件太大,中断发送')
                sys.exit(2)
        if usersmtp and s.has_extn('auth'):
            print('使用认证连接')
            try:
                s.login(username,password)
            except smtplib.SMTPException as e:
                print('认证失败')
                sys.exit(1)
        else:
            print('服务器不支持认证,使用普通连接')
        s.sendmail(fronaddr,toaddr,message)
    #socket模块 四种异常gaierror查询地址有关 error I/O通信有关 herror其他地址错误有关 timeout超时处理有关 
    except (socket.gaierror,socket.error,socket.herror,smtplib.SMTPException) as e:
        print('****邮件成功发送****')
        print(e)
    else:
        print('****邮件成功发送****')


if __name__ == "__main__":
    auth_login()


POP3_mail.py

from poplib import POP3
import sys
import socket
from getpass import getpass

pop3server = 'pop.sina.com'
print("name")
username = input()
password = getpass("password")
try:
    rec = POP3(pop3server)
    rec.user(username)
    rec.pass_(password)
    ret = rec.stat()
    print('邮件数量和字节',ret)
    list1 = rec.top(2,2)
    print('第n号邮件第m行',list1)
    list2 = rec.list()
    print('邮件和ID大小',list2)
    list3 = rec.retr(3)
    print('从n开始的文件信息',list3)
    rec.quit()
except(socket.gaierror,socket.herror,socket.error) as e:
    print(e)
    sys.exit(1)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值