zoukankan      html  css  js  c++  java
  • 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)

    返回目录



  • 相关阅读:
    COGS 2075. [ZLXOI2015][异次元圣战III]ZLX的陨落
    51nod 1099 任务执行顺序
    洛谷 P1215 [USACO1.4]母亲的牛奶 Mother's Milk
    洛谷 P3395 路障
    2017.10.25 模拟赛
    COGS 146. [USACO Jan08] 贝茜的晨练计划
    洛谷 P3905 道路重建
    COGS 678. 双重回文数
    洛谷 P1509 找啊找啊找GF
    51nod 1366 贫富差距
  • 原文地址:https://www.cnblogs.com/musea/p/12344705.html
Copyright © 2011-2022 走看看