python邮件发送封装类

作者:神秘网友 发布时间:2021-02-27 21:20:07

python邮件发送封装类

import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from common.config import configs

class EmaliUtils:
def __init__(self,smtp_body, attch_path =None):
self.smtp_server = 'smtp.qq.com'
self.smtp_prot = 25
self.smtp_send = '***@qq.com'
self.smtp_password = 'mkfarwmvotfqfgec'
self.smtp_receiver = configs.SMTP_RECEIVER
self.smtp_cc = '***@qq.com'
self.smtp_subject = '自动化邮件发送'
self.smtp_body = smtp_body
self.attch_path = attch_path

def email_message_body(self):
message = MIMEMultipart()
message['from'] = self.smtp_send
message['to'] = self.smtp_receiver
message['Cc'] = self.smtp_cc
message['subject'] = self.smtp_subject
message.attach(MIMEText(self.smtp_body, 'html', 'utf-8'))
# print(self.attch_path)
if self.attch_path:
attach_file_obj = MIMEText(open(self.attch_path,'rb').read(), 'base64', 'utf-8')
attach_file_obj['Content-Type'] = 'application/octet-stream'
attach_file_obj.add_header('Content-Disposition', 'atachment',
filename=('gbk', '', os.path.basename(self.attch_path)))
message.attach(attach_file_obj)
return message


def send_mail(self):
smtp = smtplib.SMTP()
smtp.connect(self.smtp_server, self.smtp_prot)
smtp.login(self.smtp_send, self.smtp_password)
smtp.sendmail(self.smtp_send, self.smtp_receiver.split(',') + self.smtp_cc.split(','),
self.email_message_body().as_string())
smtp.close()




if __name__ == '__main__':
email_u = EmaliUtils('自动化邮件发送', '../report')
email_u.send_mail()

python邮件发送封装类 相关文章

  1. python 使用pymysql上传excel数据

    from django.shortcuts import render, HttpResponse from Day72bbs.settings import MEDIA_ROOT from docxtpl import DocxTemplate import os import xlrd MEDIA_ROOT 在 settings.py 中的设置为 MEDIA_URL='/doctemplates/' MEDIA_ROOT = os.path.join(BAS

  2. 数据库之存储过程

    存储过程 1.什么是存储过程 存储过程就类似于python中的自定义的函数,它的内部包含了一系列可以执行的sql语句,存储过程存放于mysql服务端中,你可以直接通过调用存储过程触发内部sql语句的执行 2.存储过程的基本使用 procedure /pr??si?d??(r) 程序, 过程 --

  3. python给证件照换底色

    import cv2import numpy as npfrom tkinter import *from tkinter import ttkimport tkinter as tkimport tkinter.filedialogimport osroot = Tk()root.title('证件照背景色更换')root.geometry('400x300')SelectNum = tk.IntVar() # 用来储存下面勾选项1中

  4. LeetCode | 0669. 修剪二叉搜索树【Python】

    问题 力扣 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树不应该改变保留在树中的元素的相对结构(即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存

  5. python 雷达图 转载:https://mp.weixin.qq.com/s/M1f0ItGQz3BKZTIe1ootYQ

    一、前言 我们平常玩游戏或者看电影的时候,会看到里面介绍各种人的能力指标。 以百度百科提供的漫威人物能力数值为例,如下图: 分别介绍了各个超级英雄的智力、力量、速度、耐力、能量发射、战斗技能。 但是吧,光是这样的表格,并不能很直观的看出英雄的

  6. LeetCode | 0662. 二叉树最大宽度【Python】

    问题 力扣 给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入

  7. 用 Python 自动回复 QQ 消息,附源码!

    前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲的不错,于是就用所学的知识做了一个程序,实现自动回复QQ消息。 1. 准备工作 1.1 安装client模块 打开命令窗口,输入命令: pip install appium-python-client 1.2 安装Appium Server

  8. python学习之面向对象

    python学习之面向对象 类定义 与python的函数定义类似,只不过把def关键字替换为class class calculator(): passa=calculator()print(type(a)) 输出 class ' main .calculator' 构造函数 与php的定义类似,只不过把__construct替换成__init__ class calculat

  9. LeetCode | 0655. 输出二叉树【Python】

    问题 力扣 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度。 列数 n 应当总是奇数。 根节点的值(以字符串格式给出)应当放在可放置的第一行正中间。根节点所在的行与列会将剩余空间划分为两部分(左下部分和

  10. 检查IP是否在RBL库中的脚本

    # 邮件服务器外发邮件,出站的ip很重要,如果出站的公网ip地址在比较出名的RBL库中,那么很大记录都是直接到收件人垃圾箱或到对方服务器就被过滤了 # 再此分享一个检查ip的脚本,申诉ip地址也很简单,到对应网站根据提示操作即可解除。 # 进RBL的IP一般都是

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词