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)

    返回目录



  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number (考虑负数的情况)
    8. String to Integer (整数的溢出)
    7. Reverse Integer (整数的溢出)
    LeetCode Minimum Size Subarray Sum
    LeetCode Course Schedule II
    Linux 文件缓存 (一)
    LeetCode Tries Prefix Tree
    Linux : lsof 命令
    LeetCode Binary Tree Right Side View
  • 原文地址:https://www.cnblogs.com/musea/p/12344705.html
Copyright © 2011-2022 走看看