DAY 06 作业md

DAY 06 用代码来发送文件

一 . 邮件发送的基本流程

  1. 连接服务器
connect = smtplib.SMTP_SSL('smtp.qq.com',465)
  1. 登录邮箱
connect.login('1062862550@qq.com','svsnjiruevnlbcbb')
  1. 准备邮件内容

① 创建一个空的邮件对象

from email.mime.multipart import MIMEMultipart   
# 这是构建一个邮件对应的类,相当于一个空的邮件
from email.header import Header                  
# 创建一个邮件的主题
from email.mime.text import MIMEText            
#创建邮件的内容
email = MIMEMultipart()

② 设置收件人信息

email['To'] = '2219190038@qq.com'

③ 设置发件人信息

email['From'] = 'shixin <1062862550@qq.com>' 

#第一个可以修改收到的发件人信息

④ 设置邮件主题

email['Subject'] = Header('你好嘛','utf-8').encode()

⑤添加正文

MIMEText(正文内容,类型)

类型:pLain (普通文字对应的正文),html(超文本)base64(附件和图片)

#a.创建正文内容
msg = MIMEText('你好','plain')
#b.将正文内容添加到邮件种
email.attach(msg)
  1. 发送邮件
connect.sendmail('1062862550@qq.com','2219190038@qq.com',email.as_string()) 
#第一个收件,第二个发件
  1. 关闭链接
connect.close()

二 发送附件

*import  smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
  1. 连接邮箱服务器

    onnect = smtplib.SMTP_SSL('smtp.qq.com',465)
    
  2. 登陆邮箱

connect.login('1062862550@qq.com','svsnjiruevnlbcbb')
  1. 构建邮箱
email = MIMEMultipart()
email['Subject'] = Header('休息','utf-8').encode()
email['From'] = 'shixin <1062862550@qq.com>'
email['To'] = '2219190038@qq.com'

a.普通正文

msg1 = MIMEText('hello world ','plain')
email.attach(msg1)

①.打开附件对应的文件,并且获取文件内容

data = open(' wenjian/smtplib 邮件自动发送.pdf','rb').read()

②.创建附件对象

wenjian = MIMEText(data,'base64','utf-8')

③.设置附件在邮件种显示的位置和格式(注意ilename后面的附件名称不能有中文

wenjian['Content-Disposition'] = 'attachment; filename="smtp.pdf"'

④.将附件添加到邮件中

email.attach(wenjian)
  1. 发送邮件
connect.sendmail('1062862550@qq.com', '2219190038@qq.com', email.as_string())
  1. 关闭连接
connect.close()

三.发送超文本

import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText

conect = smtplib.SMTP_SSL('smtp.qq.com',465)
conect.login('1062862550@qq.com','svsnjiruevnlbcbb')

email = MIMEMultipart()
email['Subject']= Header('发生超文本','utf-8').encode()
email['From'] = 'shixin <1062862550@qq.com>'
email['To'] = 'y_t209@163.com'
#构建html格式正文 (读html文件内容,获取文件内容对应的字符串)
data1 = open(' wenjian/data.html',encoding='utf-8').read()
msg = MIMEText(data1,'html')
email.attach(msg)

conect.sendmail('1062862550@qq.com', 'y_t209@163.com', email.as_string())

conect.close()

四.格式字符串

a.语法 ;包含格式占位符的字符串 % (数据1,数据2.数据3.....)
b. 说明:格式占位符
%s  -  任何类型的数据占位
%d  -   数字(整数)占位符,填充的时候会把数据自动转换为整数
%f  -   数字占位符,填充的时候会将字数转化为小数,并保留6位小数 
%.NF -   数字占位符,填充的时候会让数字保留N位小数 (多用于金额的时候)

五.邮件的批量发送

import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText

data = [
    {'name': '余婷', 'gender': '女', 'score': 1000, 'email': '726550822@qq.com'},
    {'name': '张三', 'gender': '男', 'score': 567, 'email': 'y_t209@163.com'},
    {'name': '朱聪', 'gender': '男', 'score': 478, 'email': 'zhuucc@163.com'},
    {'name': '马诗雨', 'gender': '女', 'score': 672, 'email': '873925431@qq.com'},
    {'name': '李相葛', 'gender': '男', 'score': 325, 'email': '1873215638@qq.com'}
]
# 基本功能:给上面data种所有客户发送邮件,如果积分在500分以上,称呼前面加上‘’尊敬

①.连接服务器

connect = smtplib.SMTP_SSL('smtp.qq.com',465)

②.登录邮箱

connect.login('1062862550@qq.com','svsnjiruevnlbcbb')

③.构建邮件对象(写信)

a.

for info in data :
    #收件人邮箱地址
    to_email = info['email']
    #收件人姓名
    name = info['name']
    #称呼
    if info['gender'] == '女':
        call = '女士'
    else :
        call = '先生'
    #前缀
    if info['score'] >= 500:
        pre = '尊敬的'
    else:
        pre = ''

b. 创建邮件

email = MIMEMultipart()
email['Subject'] = Header('京东会员活动通知', 'utf-8').encode()
email['From'] = 'JingDong <1062862550@qq.com>'
email['To'] = to_email
email_content =open('we',encoding='utf-8').read() . %(pre + name[0], call, name)
msg = MIMEText(email_content, 'html')
email.attach(msg)

③. 发送邮件

connect.sendmail('726550822@qq.com', to_email, email.as_string())

④.关闭连接

connect.close()

六.os常见函数

import os
os 是python提供的专门用来处理文件或者文件夹的模块
  1. 路径

语法:open(文件路径)

1)绝对路径:文件或者文件夹在计算机中的全路径 (windos需要从C盘开始写,字符串的最前面加r)
2)相对路径:
    前提:需要操作的文件或者文件夹在工程里面的时候才可以使用相对路径
    a。用 . 表示当前目录 (当前目录指的是,当前代码文件所在的文件夹)
        注意:如果相对路径是以‘./开头的,可以省略./’
    b  用 .. 开头表示当前目录的上层目录
  1. 创建文件夹
os.mkdir(文件夹路径)
#创建文件夹的时候,如果文件夹已经存在会报错!
  1. 判断文件或者文件夹是否已经存在
# os.path.exists(文件或者文件夹路径)
#创建wenjian下面常见img文件夹

if not os.path.exists('./wenjian/img'):
    os.mkdir('./wenjian/img')
  1. 罗列除指点文件夹中所有内容
content = os.listdir('./wenjian'):
print(content)
  1. 判断是否是文件或者文件夹
# 1)os.path.isfile(路径)    - 判断指定路径对应的内容是否是文件
# 2)os.path.isdir(路径)   -   判断指定路径对应的内容是否是文件夹
result = os.path.isfile('./wenjian/test'):
print(result)
for name in content:
    if os.path.isfile('./wenjian/%s' %(name)):
        print(name)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值