Py邮件

2019-2020 邮件

目录


TASK1 邮件结构

TASK2 内容

TASK3 代码

TASK4 结果



TASK1 邮件结构

**** ![](https://img2018.cnblogs.com/blog/1047870/202002/1047870-20200222113138765-1734039315.png)

返回目录



TASK2 内容

一、模块的定义:

模块简答来说就是一个Py文件,里面有类,函数和变量

二、使用模块的方法:

1、import 语句

  • 用法:import + 模块名

例子:import time;import csv

  • 如何调用模块中的函数,变量

eg:模块名.函数;模块名.变量

2、from...import语句

  • 用法: 从模块中导入一个指定的部分到当前模块(函数、变量、类名)

  • 例子:from test import *,默认将test模块中的所有函数、变量进行全部导入

3、if name == 'main'

  • 用法:当运行的文件是程序的入口时,则会执行if name=='main'下的语句,相反,当运行的文件作为模块是被其他程序导入时,代码if name=='main'下的代码则不会执行
    例子:
main.py

print('你好')

if name=='main'

prinr('文件是程序的入口')     

解示,由于main是主模块,程序的入口,所以print('文件是程序的入口')会被执行

4、如何搜索出相对应的模块的py文件

  • 用法:在命令行上输入模块名.py

eg:random.py

5、自学模块内容

  • 用法:用百度直接搜索或使用dir()函数进行相关的函数展示

6、CSV模块

import csv

with open("test.csv",newline = '')  as f:

    reader = csv.reader(f)

    #使用csv的reader()方法,创建一个reader对象

    for row in reader: 

    #遍历reader对象的每一行

        print(row)
  • CSV文档的写入:(例子如下)
import csv

with open('test.csv','a', newline='',encoding='utf-8') as f:

    writer  = csv.writer(f)

    writer.writerow(['4', '猫砂', '25', '1022', '886'])

    writer.writerow(['5', '猫罐头', '18', '2234', '3121'])

返回目录



TASK3 代码

  • 普通
# smtplib 用于邮件的发信动作
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# 用于构建邮件头

# 发信方的信息:发信邮箱,QQ邮箱授权码)
from_addr = 'xxx@qq.com'
password = '授权码数字'

# 收信方邮箱
to_addrs = ['wufeng@qq.com','kaxi@qq.com']

# 发信服务器
smtp_server = 'smtp.qq.com'

# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
text='''
人生苦短,我用Python
'''
msg = MIMEText(text,'plain','utf-8')

# 邮件头信息
msg['From'] = Header(from_addr)
msg['To'] = Header(",".join(to_addrs)) 
msg['Subject'] = Header('python test')

# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL()
server.connect(smtp_server,465)
# 登录发信邮箱
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭服务器
server.quit()
  • 群发
# smtplib 用于邮件的发信动作
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# 用于构建邮件头

# 发信方的信息:发信邮箱,QQ 邮箱授权码
from_addr = input('请输入登录邮箱:')
password = input('请输入邮箱授权码:')

# 收信方邮箱
to_addrs = []
while True:
    a=input('请输入收件人邮箱:')
    to_addrs.append(a)
    b=input('是否继续输入,n退出,任意键继续:')
    if b == 'n':
        break

# 发信服务器
smtp_server = 'smtp.qq.com'

# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
text='''
人生苦短,我用Python
'''
msg = MIMEText(text,'plain','utf-8')

# 邮件头信息
msg['From'] = Header(from_addr)
msg['To'] = Header(",".join(to_addrs)) 
msg['Subject'] = Header('python test')

# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server,465)
# 登录发信邮箱
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addrs, msg.as_string())
# 关闭服务器
server.quit()
  • 使用CSV
import smtplib
# smtplib 用于邮件的发信动作
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# 用于构建邮件头
import csv
# 引用csv模块,用于读取邮箱信息

# 发信方的信息:发信邮箱,QQ邮箱授权码
# 方便起见,你也可以直接赋值
from_addr = input('请输入登录邮箱:')
password = input('请输入邮箱授权码:')

# 发信服务器
smtp_server = 'smtp.qq.com'

# 邮件内容
text='''
人生苦短,我用Python
'''

# 待写入csv文件的收件人数据:人名+邮箱
# 记得替换成你要发送的名字和邮箱
data = [['wufeng ', 'wufeng@qq.com'],['kaxi', 'kaxi@qq.com']]

# 写入收件人数据
with open('to_addrs.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    for row in data:
        writer.writerow(row)

# 读取收件人数据,并启动写信和发信流程
with open('to_addrs.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader: 
        to_addrs=row[1]
        msg = MIMEText(text,'plain','utf-8')
        msg['From'] = Header(from_addr)
        msg['To'] = Header(to_addrs)
        msg['Subject'] = Header('python test')
        server = smtplib.SMTP_SSL()
        server.connect(smtp_server,465)
        server.login(from_addr, password)
        server.sendmail(from_addr, to_addrs, msg.as_string())

# 关闭服务器
server.quit()

返回目录



三、结果

![](https://img2018.cnblogs.com/blog/1047870/202002/1047870-20200222113647074-1272155244.png)

返回目录



posted on 2020-02-22 11:37  musea  阅读(223)  评论(0编辑  收藏  举报