首页 > 编程语言 >python模块之smtplib邮件处理模块

python模块之smtplib邮件处理模块

时间:2024-05-27 14:44:14浏览次数:18  
标签:python smtp col 模块 msg smtplib email 邮件 row

要求:
发送一封简单的邮件 发送html格式的邮件 在邮件中带图片
发送邮件步骤:
1.登录邮件服务器
2.构造符合邮件协议规则的邮件内容
3.发送

python对SMTP支持有smtplib和email模块,email负责构造邮件,smtplib负责发送邮件
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 登录邮件服务器
smtp_obj = smtplib.SMTP_SSL('smtp.exmail.qq.com', 465) # 发件人邮箱smtp服务器和端口
smtp_obj.login("[email protected]", "password")  # 发件人邮件账号密码,password可以是授权码
smtp_obj.set_debuglevel(1) # 调试信息

 # 设置邮件头信息
 msg = MIMEText("Hello,email", "plain", "utf-8")
 msg["From"] = Header("来自xc的问候", "utf-8") # 发送者
 msg["To"] = Header("有缘人", "utf-8") #接收首
 msg["Subject"] = Header("xc的信", "utf-8")

 # 发送                              【发件人,收件人】
 smtp_obj.sendmail("[email protected]", ["[email protected]", "[email protected]"], msg.as_string())

二、发送工资条

处理excel信息表,批量给每个员工发工资条

举例

 

from email.mime.text import MIMEText

from openpyxl import load_workbook
import smtplib


# 加载excel文件,data_only将公式算出来
wb = load_workbook("salary.xlsx", data_only=True)
sheet = wb.active

# 登录
smtp_obj = smtplib.SMTP_SSL('smtp.exmail.qq.com', 465)
smtp_obj.login("[email protected]", "password")

# 设置邮件内容

# 循环excel
count = 0
table_col_names = []
table_col_html = '<thead>' #表头
for row in sheet.iter_rows(min_row=1):
    count += 1
    if count == 1:
        for col in row:
            # table_col_names.append(col.value)
            table_col_html += f"<th>{col.value}</th>"
        table_col_html += "</thead>"
        continue
    else:
        row_text = "<tr>"
        for cell in row:
            print(cell.value, end=",")
            row_text += f"{cell.value}"

        name = row[2]
        staff_email = row[1].value
        print(name.value,staff_email)

# 表格格式
    mail_body_context = f"""
        <h3>{name.value},你好:</h3>
        <p>请查收2022年-01月工资条</p>
        <table border="1px solid black">
           {table_col_html}
           {row_text}
        </table>
    """
    msg_body = MIMEText(mail_body_context, "html", "utf-8")

    msg_body["From"] = Header("人事部", "utf-8")  # 发送者
    msg_body["To"] = Header("员工", "utf-8")  # 接收首
    msg_body["Subject"] = Header("1月工资", "utf-8")

    # 发邮件
    smtp_obj.sendmail("[email protected]", [staff_email,],msg_body.as_string())
    print(f"成功发送供资料到{staff_email}-{name.value}...")

 

标签:python,smtp,col,模块,msg,smtplib,email,邮件,row
From: https://www.cnblogs.com/yangmeichong/p/18215352

相关文章

  • 日志模块
    介绍在学习了sylar的C++高性能分布式服务器框架后,想把自己在学习过程中的感想记录下来。当然主要原因还是sylar的B站视频过于难以理解了,也是想加强一下自己对这个框架的理解。很多内容也是借鉴了其他大佬的博文,比如找人找不到北,zhongluqiang日志模块概述日志模块的目的:用于格......
  • Python闭包和装饰器原理
    #Python闭包和装饰器#############闭包##############'''1.一个外层函数,内嵌一个内层函数;2.内层函数使用外层函数的参数;3.外层函数将内层函数作为返回值返回'''#外层函数defouter(msg):#内层函数definner():#内层函数使用外......
  • BOSHIDA AC/DC电源模块:高质量的电力转换解决方案
    BOSHIDAAC/DC电源模块:高质量的电力转换解决方案AC/DC电源模块是一种电力转换器件,可以将交流电转换为直流电。它通常用于各种电子设备和系统中,提供高质量的电力转换解决方案。 AC/DC电源模块具有许多优点。首先,它能够提供稳定的电流和电压输出,确保设备能够正常工作。这对于需......
  • Python编程入门:从零开始掌握基础
    Python编程入门:从零开始掌握基础Python是一门简单易学但功能强大的编程语言。它广泛应用于数据科学、机器学习、web开发、自动化任务等领域。本系列文章将带你从零开始学习Python,逐步掌握这门语言的基础知识。本文是系列的第一篇,涵盖Python的基本语法、变量和数据类型等内......
  • Python基础-容器数据
    一、容器类型介绍容器就是存放数据的python中的容器数据有多种形式,每种形式有自己的存储格式,数据存储特性不一样字符串str就是容器存放一个一个字母格式:单引号'数据',双引号"数据",三个引号"""数据"""列表list格式:[数据1,数据2,数据3.....]元祖tuple......
  • Python 问题汇总
    一.Python环境问题使用pytest在terminal中执行脚本调用python3.9,而使用pycharm的virtualenv执行脚本调用的是python3.10,由于环境不一致,因此进行配置;1.安装pyenv进行版本管理,当前安装的是python3.9.19,目录为: /usr/local/Cellar/[email protected]/3.9.19创建软链:ln-s......
  • 基于Python LSTM的多维数据预测
    欢迎大家点赞、收藏、关注、评论啦,由于篇幅有限,只展示了部分核心代码。文章目录一项目简介二、功能三、系统四.总结一项目简介  一、项目背景与意义在现实世界的数据分析中,我们经常需要处理多维数据(multi-variatedata),这些数据往往具有复杂的时空关系和时......
  • 深度学习之基于Python+OpenCV+Tensorflow+Keras实时口罩检测系统
    欢迎大家点赞、收藏、关注、评论啦,由于篇幅有限,只展示了部分核心代码。文章目录一项目简介二、功能三、系统四.总结一项目简介  一、项目背景与意义在全球公共卫生背景下,口罩成为了重要的防护工具。特别是在疫情流行期间,确保公共场所的人们佩戴口罩对于防......
  • Python网页解析
    课前案例如果不存在imgs目录,则需要手动创建它,或者通过代码创建。可以使用 Path.mkdir() 方法创建目录。例如:imgs_dir=Path("imgs")imgs_dir.mkdir(parents=True,exist_ok=True)记得下载lxml软件包,可以在终端用指令下载:pipinstall-ihttps://mirrors.aliyun.com/p......
  • RabbitMQ(python)
     一、认识MQMQ全称为MessageQueue消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。这样发布者和使用者都不用知道对方的存在。生产者消费者模式是通过一个容器来解决生......