Day18_继承和邮件自动发送

Day18_继承和邮箱自动发送

面向对象和邮件自动发送

继承

  1. 什么是继承

    继承就是让子类直接拥有父类的属性和方法(子类 - 继承者;父类 - 被继承者)

  2. 继承的语法

"""
class 类名(父类1,父类2,...):
    pass
定义类的时候如果没有写继承关系,那么这个类默认继承python的基类:object
class 类名:   == class 类名(object)
"""
  1. 子类中添加属性和方法
"""
1)添加类属性,方法
直接在子类中添加新的属性和新的方法
2)添加对象属性
在子类__init__方法中添加新的对象属性,同时使用super()去调用父类的__init__,
super的用法:
super(类,类的对象).方法() - 调用指定类的父类的的方法
"""
  1. 类中的方法的调用
"""
在通过类或者对象调用方法的时候,会先看当前类是否存在这个方法,如果存在就直接调用,如果不存在就看父类中是否存在
有对应的方法,如果有就调用父类中的方法,如果没有就看父类的父类是否存在对应的方法,依次类推,直到看基类中是否存在,如果不存在会报错
"""

多继承

  1. 多继承:所谓多继承是指一个子类继承多个父类,但是在调用父类中的对象属性时,只能调用第一个父类的对象属性.

私有化

  1. 访问权限

    类的内容的访问权限分为3种:

    1. 公开的:在类的内部和类的外部都可以被使用,并且被继承的
    2. 保护的:在类的内部可以使用,也可以被继承,但是不能在类的外部使用的
    3. 私有的:只能在类的内部使用,不能被继承也不能在类的外部使用的

    注意:从真正意义上的访问权限上讲,python类中所有的内容都是公开的,python的私有化是假的私有化

  2. 私有化

  3. 在需要私有化的属性名或者方法名前加_ _(不能在其后面同时加 _ _)

发送邮件的基本流程

  1. 准备账号(导入smtplib模块)

    1. 什么邮箱
    2. 邮箱账号
    3. 邮箱密码
  2. 登录邮箱

  • 连接邮箱服务器(服务器地址:smtp.qq.com或者smtp.163.com;服务器端口:465或者25)
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
  • 登录邮箱
connect.login('**********@qq.com', 'supozgbuegftbafh') 
  1. 准备需要发送的邮件
from email.mime.multipart import MIMEMultipart  # MIMEMultipart - 空的邮件对象
from email.mime.text import MIMEText
from email.header import Header
# 1)创建一个空的邮件对象
email = MIMEMultipart()
# 2)设置邮件主题
email['Subject'] = Header('第一封自动发送的情书!', 'utf-8').encode()
# 3)设置邮件发送者
email['From'] = '**********@qq.com<**********@qq.com>'
# 4)设置邮件发送者
email['To'] = '**********@qq.com'
# 5)添加正文
content = MIMEText('海哥哥,节日快乐,永远爱你!', 'plain', 'utf-8')
email.attach(content)
  1. 发送邮件
connect.sendmail('**********@qq.com', '**********@qq.com', email.as_string())
connect.quit()

发送带附件的邮件

  1. 登录邮箱
import smtplib
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('**********@qq.com', 'supozgbuegftbafh')
  1. 构建邮件
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.image import MIMEImage

email = MIMEMultipart()
email['From'] = '***<*********@qq.com>'
email['To'] = '*********@qq.com'
email['Subject'] = Header('爱你,老婆', 'utf-8').encode()
# 0)添加普通正文
# 1)添加图片附件
# 打开图片
with open('./loveyou.jpg', 'rb') as f:
    image = MIMEImage(f.read())
image['Content-Disposition'] = 'attachment;filename =love.jpg'
email.attach(image)
  1. 发送邮件
connect.sendmail('*********@qq.com', '*********@qq.com', email.as_string())

补充:

import os
all_files = os.listdir('./file')
print(all_files)
上一篇:JStudy Day18


下一篇:Day18-继承与邮件发送