两种python实现自动发邮件的方法

2023-10-27

法一
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
import smtplib
from template import DATETIME

class Email(object):

    def __init__(self, file_path, file_name):
        self.subject = "********"  # 邮件标题
        self.sender = '****@huawei.com'  # 发件人
        self.receivers = ["*****@huawei.com", "*****@huawei.com", "***@huawei.com", "*****@huawei.com"]  # 收件人
        self.cc = ['***@huawei.com']  # 抄送人
        self.file_path = file_path
        self.file_name = file_name  # 发送附件名字

    def message_init(self, html):
        # 创建一个带附件的实例
        message = MIMEMultipart()  # 发送消息定义
        message['Subject'] = Header(self.subject, 'utf-8')
        message['From'] = self.sender  # 发件人
        message['To'] = ', '.join(self.receivers)  # 收件人
        message['Cc'] = ', '.join(self.cc)  # 抄送者
        # 解决乱码,html是html格式的str
        message_context = MIMEText(html, _subtype='html', _charset='utf-8')
        # 邮件正文内容
        message.attach(message_context)
        att1 = MIMEText(open('{}/{}'.format(self.file_path, self.file_name), 'rb').read(), 'base64', 'utf-8')
        att1["Content-Type"] = 'application/octet-stream'
        # 附件名称
        att1["Content-Disposition"] = 'attachment; filename={}'.format(self.file_name.split('\\')[-1])
        message.attach(att1)  # 添加附件
        return message

    def send_email(self, html):
        message = self.message_init(html)
        smtp_obj = smtplib.SMTP('smtp.huawei.com')
        smtp_obj.login('工号', "密码")  # 打开电脑的账号密码
        smtp_obj.sendmail(self.sender, self.receivers + self.cc, message.as_string())
        smtp_obj.quit()
法二
#coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = '邮箱地址'
receiver = '邮箱地址'
username = '工号'
password = '密码'

subject = 'python email test'
#中文需参数‘utf-8’,单字节字符不需要
msg = MIMEText('你好呀,最近好么','plain','utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg["From"] = sender
msg["To"] = str(receiver)
msg["Reply-To"] = sender

smtpserver = 'smtpscn.huawei.com'
server_port = 587
#print email_message
#创建SMTP对象
smtp = smtplib.SMTP(smtpserver,server_port)
#smtp.set_debuglevel(1)
#向mail发送SMTP "ehlo" 命令
smtp.ehlo()
#启动TLS模式,mail要求
smtp.starttls()
#用户验证
smtp.login(username, password)
#发送邮件
smtp.sendmail(sender, receiver, msg.as_string())
#退出
smtp.quit()
优秀参考文档

python自动化发送邮件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两种python实现自动发邮件的方法 的相关文章

  • 无法在 PIL 中对 16 位 TIF 应用图像滤镜

    我尝试使用 python 应用图像过滤器PIL http www pythonware com products pil 代码很简单 im Image open fnImage im im filter ImageFilter BLUR 此
  • Python的unpack中的逗号是什么意思?

    我们可以简单地使用 crc struct unpack gt i data 为什么人们这样写 crc struct unpack gt i data 逗号是什么意思 第一个变体返回一个单元素元组 In 13 crc struct unpac
  • 出现导入错误:无法从“随机”导入名称“随机”[重复]

    这个问题在这里已经有答案了 我在我的计算机上多次运行我的代码 但没有出现此错误 但突然间这个来了 File e Python 3 8 0 lib site packages comtypes client code cache py lin
  • Python 可以使用单独的媒体播放器打开 mp3 文件吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以开一个mp3Python 中的文件 可以使用Popen 我并不是要在程序中运行它 我的意思是作为媒体播放器中的一个单独窗口或其
  • Accel 无法在 gedit 3 插件中工作

    我试图为 Gedit 3 编写一个使用 GObject 自省的小插件 下面显示的代码的相关部分只是为了建立一个环境 然后我可以将函数放入按钮的回调中 但是 该按钮的加速器不起作用 这段代码有什么问题 我正在使用教程here http www
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • 将列表传递给 PyCrypto 中的 AES 密钥生成器

    我尝试使用 Pycrypto 生成 AES 密钥 但收到以下错误 类型错误 列表 不支持缓冲区接口 对于以下声明 aescipher AES new mykey AES MODE ECB mykey 属于类型list并包含 18854347
  • 如何使用泛型类型的构造函数

    如何使用 python 泛型类型的构造函数 T typing TypeVar T class MyClass typing Generic T def init self initialValue typing Iterable self
  • 在 Windows 上将 NumPy 与 BLAS 链接

    我正在尝试在 Windows 系统上安装 Theano 并且需要安装 BLAS 和 LAPACK 我的 System32 文件夹中有这些的 dll 文件 当我运行 numpy config来自 Anaconda 的 show 库的路径正确显
  • 将 csv 文件按多列拆分为 panda 数据框

    我有一个包含多列的 tsv 文件 有 10 多列 但对我来说重要的列是名称为 user name shift id url id 的列 我想创建一个数据框 首先根据用户名分隔整个 csv 文件 即只有具有相同用户名的行才会分组在一起 从该块
  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 如何抑制 pyinstaller 生成的可执行文件窗口中的所有警告

    我已经使用 pyinstaller 从 python 文件生成了可执行文件 该程序按其应有的方式工作 但在我想隐藏的窗口中出现了一条警告消息 当 python 文件在 IDE 中运行时 以下行会抑制所有警告消息 warnings filte
  • Python3.1中的视图?

    Python3 1中的视图到底是什么 它们的行为方式似乎与迭代器类似 并且它们也可以具体化为列表 迭代器和视图有何不同 据我所知 视图仍然附加到创建它的对象上 对原始对象的修改会影响视图 来自docs http docs python or
  • 如何替换被测模块的文件访问引用

    pyfakefs https code google com p pyfakefs 听起来非常有用 它 最初是作为核心 Python 模块的一个适度的假实现来开发的 以支持中等复杂的文件系统交互 并于 2006 年 9 月在 Google
  • 从 sublime_plugin.WindowCommand 获取当前文件名

    我开发插件sublime text 3 并想要获取当前打开的文件路径 absolute1 self window view file name 在哪里self is sublime plugin WindowCommand 但失败了 Att
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • 在字典理解中为 locals() 添加下标失败并出现 KeyError [重复]

    这个问题在这里已经有答案了 我对 Python 的奇怪行为感到困惑locals 基本上我想从字典中获取一个项目locals 在字典理解中 但它失败了 这是一个非常基本的事情 所以 gt gt gt foo 123 gt gt gt bar
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • 连接运算符 + 或 ,

    var1 abc var2 xyz print literal var1 var2 literalabcxyz print literal var1 var2 literal abc xyz 除了带有 的自动空格之外 两者有什么区别 哪个通

随机推荐

  • composer Ratchet 实验心得

    博客迁移 时空蚂蚁http cui zhbor com 你首先要做的是把自己的PHP升级到5 3以上 需要支持命名空间 简介 Composer是PHP中用来管理依赖关系的工具 你可以在自己的项目中声明所依赖的外部工具库 libraries
  • Webpack5 基本使用和基本配置

    依赖环境 NodeJS 16 前置知识 1 对NodeJS各个核心模块操作有一定认识 比如fs path os等 2 对React和Vue有一定的认识 并且开发过项目 为什么要使用 Webpack5 开发时 我们会使用框架React Vue
  • jquery在线地址,layui在线地址,bootstrap在线地址以及把线上地址保存到本地

    前言 jquery在线地址 layui在线地址 bootstrap在线地址 以及保存到本地 jquery在线地址 3 1 1版本
  • cesium.js官网教程之中文版本~~~~第一篇

    翻译地址 https cesiumjs org tutorials Cesium Workshop 翻译者 嬴渠梁 概述 欢迎来到cesuim社区 很高兴你的到来 为了发展你自己的网络地图应用成为可能 本教程将会从头到尾的介绍一个简单的ce
  • 读书笔记:多Transformer的双向编码器表示法(Bert)-1

    多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers 即Bert 本笔记主要是对谷歌Bert架构的入门学习 介绍Transformer架构
  • Tkinter的下拉列表Combobox

    tk中下拉列表使用ttk Combobox 代码如下 usr bin env python coding utf 8 import tkinter as tk from tkinter import ttk win tk Tk win ti
  • 基于yolov5的车辆行人道路检测

    一 数据集介绍 本实验使用自动驾驶的公开数据集BDD100K 数据格式 BDD100K 数据集包含10万段高清视频 每个视频约40秒 720p 30 fps 总时间超过1 100小时 视频序列还包括GPS位置 IMU数据和时间戳 视频带有由
  • 闭环系统和开环系统的频域性能指标

    文章目录 1 闭环系统的频域性能指标 1 1 带宽 1 2 谐振频率与谐振峰值 2 开环系统的频域性能指标 2 1 穿越频率 2 2 相角裕度 PM 2 3 增益裕度 GM 3 开环的频域性能指标和闭环的频域性能指标的联系 3 1 开环截止
  • Redis主从、集群、哨兵配置应用

    Redis有四种集群模式 第一个就是主从模式 第二种 哨兵 模式 第三种是 Cluster 集群模式 第四种是单例模式 但是基本上只适用于自己练习 接下来我们重点聊一聊前三种模式 一 主从模式 1 主从复制概述 当其中一台服务器更新之后 服
  • JDBC原理及使用步骤

    1 原理 JDBC API 允许用户访问任何形式的表格数据 尤其是存储在关系数据库中的数据 JDBC中主要的设计模式 桥接模式 主要 工厂模式 单例模式 装饰者模式 2 使用步骤 前提 导包
  • 杭师管科python专业课线上笔记(三):2020真题选填题答案及解析(附代码)

    目录 单选 填空 全部代码 程序设计题 注 以下答案仅为个人所做 不代表标准答案 真题word版需要的话可以评论个邮箱 单选 前五道题在2019年真题时也出现了 毕竟是自命题 可能老师也懒得编新花样 所以是可能有机会做到原题的 1 列表a
  • 没有exec的参与,hasPendingConnections、nextPendingConnection等失效。

    没有exec的参与 hasPendingConnections nextPendingConnection等失效
  • (一) python+Django实现登录页面

    最近因为工作需要 开始捣鼓web框架 接下来就带大家做一个小项目 方便企业内部数据统计 调查问卷 一 操作页 二 数据填写页 三 查询页 首先我们可以找一个自己喜欢的登录页模板 不怕麻烦的话也可以自己写 我套用的是Bootstrap其中的一
  • IIC接口隔离电路ISO

    IIC为例 为什么需要隔离 隔离电路电源和数据线之间的隔离 隔离电性干扰 增强抗干扰能力 保护隔离总线iic确保系统的稳定型和可靠性 避免电源串扰以及避免数字信号对模拟信号的干扰 就需要总线进行信号隔离 就IIC而言 让master和sla
  • html5做微信公众号文章代码,微信公众号文章怎么使用代码排版?

    有了微信公众号后 就要对微信公众号进行运营 微信运营的方式就是推广文章 好的微信文章是最好的吸粉手段 那微信公众号文章怎么使用代码排版 我们一起来看看下文的例子吧 欢迎大家来阅读 需求 简单介绍下西窗烛 App 的信息结构 这是一款古诗词赏
  • 使用WSL2,开启Linux之旅

    使用WSL2 开启Linux之旅 1 确认虚拟环境的开启 2 更新WSL 3 安装ubuntu镜像 4 修改镜像路径 5 更换国内镜像源 6 配置ssh 7 配置远程桌面访问 在开始之前 提供官方链接如何更新及使用WSL 如果觉得官方操作难
  • k8s--基础--22.15--storageclass--类型--本地

    k8s 基础 22 15 storageclass 类型 本地 1 案例 kind StorageClass apiVersion storage k8s io v1 metadata name local storage provisio
  • 目标检测快速入门(含YOLO V1原理详解)

    原创 悬鱼铭 目标检测 Object Detection 任务是计算机视觉中非常重要且热门的研究方向之一 是计算机视觉算法工程师的必考的知识点 本文通过以下几点阐述 目标检测的简介 目标检测的发展 YOLO V1 原理详解 全文总共3千字左
  • DTS Audio Codec 码率

    转自 https www zhihu com question 20816979
  • 两种python实现自动发邮件的方法

    法一 from email mime text import MIMEText from email header import Header from email mime multipart import MIMEMultipart i