当前位置: 首页 > news >正文

安阳淘宝网站建设跨境电商平台有哪些知乎

安阳淘宝网站建设,跨境电商平台有哪些知乎,品牌公关公司,网站浏览历史能恢复吗怎么设置的在项目中,会使用到发送邮件的功能。不同框架的配置可能有所不同,直接写一个不依赖框架配置的邮件发送模块。 使用的功能: 1、可以发送给多个邮箱 2、可以实现抄送多个邮箱 3、可以添加多个文件附件 一、不使用多线程 import smtplib from…

在项目中,会使用到发送邮件的功能。不同框架的配置可能有所不同,直接写一个不依赖框架配置的邮件发送模块。
使用的功能:

1、可以发送给多个邮箱

2、可以实现抄送多个邮箱

3、可以添加多个文件附件

一、不使用多线程

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.header import Header
from email.utils import formataddr
from threading import Threadclass Email:EMAIL_HOST = 'smtp.qq.com'  # 如果是 163 改成 smtp.163.comEMAIL_PORT = 587  # qq邮箱服务的端口:465、587EMAIL_HOST_USER = "xxx@qq.com"  # 发送邮件的邮箱帐号EMAIL_HOST_PASSWORD = "xxx"  # 授权码,各邮箱的设置中启用smtp服务时获取FROM_EMAIL_USER = EMAIL_HOST_USER  # 收件人显示发件人的邮箱FROM_EMAIL_NAME = '广州市xxxx技术有限公司'  # 设置发件人的名字,在项目使用,一般是用公司名字def __init__(self, receiver_email, subject, message=None, html_message=None, file_path=None,cc_email=None):self.receiver_email = receiver_email # 接收人邮件self.cc_email = cc_email #邮件抄送人self.subject = subject  # 邮件的主题self.message = message  # 邮件文本内容self.html_message = html_message  # 邮件的html内容  注意:文本内容与html同时有的时候,html覆盖文本内容self.file_path = file_path  # 附件文件的路径,str 或 [str,]self.email = MIMEMultipart() #创建一个邮件对象,发送的邮件的信息都设置到这个对象中#接收人邮件:必须有if type(receiver_email) in [list,str,tuple]:if type(receiver_email) in [list,tuple]:self.receiver_email = ','.join(receiver_email)else:raise Exception('邮件抄送人必须是字符串、列表或元组形式')#抄送人邮件: 可选if cc_email:if type(cc_email) in [list,str,tuple]:if type(cc_email) in [list,tuple]:self.cc_email = ','.join(cc_email)else:raise Exception('邮件抄送人必须是字符串、列表或元组形式')def start(self):# 1、设置邮箱对象的发送人、接收人和主题self.email['From'] = formataddr((self.FROM_EMAIL_NAME, self.FROM_EMAIL_USER))self.email['To'] = self.receiver_emailself.email['Subject'] = Header(self.subject, 'utf-8')self.email['Cc'] = self.cc_email# 2、设置内容,如果同时attach了html信息和文本信息,文本信息会被转成附件文件。if not self.message and not self.html_message:raise Exception('发送的邮件每月携带任何内容...')if self.html_message:self.email.attach(MIMEText(self.html_message, 'html', 'utf-8'))else:self.email.attach(MIMEText(self.message, 'plain', 'utf-8'))# 3、邮箱的附件文件if self.file_path != None:if isinstance(self.file_path, str):self.file_path = [self.file_path]elif isinstance(self.file_path, list):passelse:raise Exception('邮件携带的附件,格式是文件字符串路径,就列表套文件字符串路径,不能是其他格式')for path in self.file_path:with open(path, "rb") as attachment:part = MIMEBase("application", "octet-stream")part.set_payload(attachment.read())encoders.encode_base64(part)part.add_header("Content-Disposition",f"attachment; filename= {path}",)self.email.attach(part)# 4、连接smtp服务器,发送邮件with smtplib.SMTP(self.EMAIL_HOST, self.EMAIL_PORT) as server:# QQ邮箱的服务器域名和端口server.starttls()  # 使用 TLS 加密连接# 使用qq邮箱登录:邮箱号和授权码server.login(self.EMAIL_HOST_USER, self.EMAIL_HOST_PASSWORD)# 发送邮件,发送的是邮箱对象server.send_message(self.email)if __name__ == '__main__':receiver_email = ['xxx@163.com','yyy@qq.com'] #接收人邮件账号cc_email = ['xxxx@163.com','yyy@qq.com'] #抄送人的邮件账号subject = '登录验证码' #主题message = '您的验证码是234523,10分钟中内有效,若非本人操作请忽视...' #文本信息file_path = ['1.txt', '2.txt'] #同目录下创建1.txt和2.txt 文件,测试附件文件html_message = '<h1>登录验证码,5分钟内有效</h1><p>您的验证码是:546783</p><p>注意:若非本人操作,建议删除邮件防止泄漏验证码信息</p>' #html信息,有这个使用这个不使用文本信息#非多线程发送email_obj_2 = Email(receiver_email=receiver_email,subject=subject,message=message,file_path=file_path,html_message=html_message,cc_email=cc_email)email_obj_2.start()

二、使用线程封装

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.header import Header
from email.utils import formataddr
from threading import Threadclass ThreadEmail(Thread):EMAIL_HOST = 'smtp.qq.com'  # 如果是 163 改成 smtp.163.comEMAIL_PORT = 587  # qq邮箱服务的端口:465、587EMAIL_HOST_USER = "xxx@qq.com"  # 发送邮件的邮箱帐号EMAIL_HOST_PASSWORD = "xxx"  # 授权码,各邮箱的设置中启用smtp服务时获取FROM_EMAIL_USER = EMAIL_HOST_USER  # 收件人显示发件人的邮箱FROM_EMAIL_NAME = '广州市xxxx技术有限公司'#设置发件人的名字,在项目使用,一般是用公司名字def __init__(self, receiver_email, subject, message=None, html_message=None, file_path=None,cc_email=None):super().__init__()self.receiver_email = receiver_email  # 接收人邮件self.cc_email = cc_email  # 邮件抄送人self.subject = subject  # 邮件的主题self.message = message  # 邮件文本内容self.html_message = html_message  # 邮件的html内容  注意:文本内容与html同时有的时候,html覆盖文本内容self.file_path = file_path  # 附件文件的路径,str 或 [str,]self.email = MIMEMultipart()  # 创建一个邮件对象,给这个对象添加 邮件需要的各种信息# 接收人邮件:必须有if type(receiver_email) in [list, str, tuple]:if type(receiver_email) in [list, tuple]:self.receiver_email = ','.join(receiver_email)else:raise Exception('邮件抄送人必须是字符串、列表或元组形式')# 抄送人邮件: 可选if cc_email:if type(cc_email) in [list, str, tuple]:if type(cc_email) in [list, tuple]:self.cc_email = ','.join(cc_email)else:raise Exception('邮件抄送人必须是字符串、列表或元组形式')def run(self) -> None:# 1、设置邮箱对象的发送人、接收人和主题self.email['From'] = formataddr((self.FROM_EMAIL_NAME, self.FROM_EMAIL_USER))self.email['To'] = self.receiver_emailself.email['Subject'] = Header(self.subject, 'utf-8')self.email['Cc'] = self.cc_email# 2、设置内容,如果同时attach了html信息和文本信息,文本信息会被转成附件文件。if not self.message and not self.html_message:raise Exception('发送的邮件每月携带任何内容...')if self.html_message:self.email.attach(MIMEText(self.html_message, 'html', 'utf-8'))else:self.email.attach(MIMEText(self.message, 'plain', 'utf-8'))# 3、邮箱的附件文件if self.file_path != None:if isinstance(self.file_path, str):self.file_path = [self.file_path]elif isinstance(self.file_path, list):passelse:raise Exception('邮件携带的附件,格式是文件字符串路径,就列表套文件字符串路径,不能是其他格式')for path in self.file_path:with open(path, "rb") as attachment:part = MIMEBase("application", "octet-stream")part.set_payload(attachment.read())encoders.encode_base64(part)part.add_header("Content-Disposition",f"attachment; filename= {path}",)self.email.attach(part)# 4、连接smtp服务器,发送邮件with smtplib.SMTP(self.EMAIL_HOST, self.EMAIL_PORT) as server:# QQ邮箱的服务器域名和端口server.starttls()  # 使用 TLS 加密连接# 使用qq邮箱登录:邮箱号和授权码server.login(self.EMAIL_HOST_USER, self.EMAIL_HOST_PASSWORD)# 发送邮件,发送的是邮箱对象server.send_message(self.email)if __name__ == '__main__':receiver_email = ['xxx@163.com','yyy@qq.com'] #接收人邮件账号cc_email = ['xxxx@163.com','yyy@qq.com'] #抄送人的邮件账号subject = '登录验证码' #主题message = '您的验证码是234523,10分钟中内有效,若非本人操作请忽视...' #文本信息file_path = ['1.txt', '2.txt'] #同目录下创建1.txt和2.txt 文件,测试附件文件html_message = '<h1>登录验证码,5分钟内有效</h1><p>您的验证码是:546783</p><p>注意:若非本人操作,建议删除邮件防止泄漏验证码信息</p>' #html信息,有这个使用这个不使用文本信息#多线程发送email_obj = ThreadEmail(receiver_email=receiver_email,subject=subject,message=message,file_path=file_path,html_message=html_message,cc_email=cc_email)email_obj.start()

三、通用性

1、对于脚本代码,也可以直接使用

2、在框架中,也可以直接使用

http://www.yayakq.cn/news/325988/

相关文章:

  • 网站做搜索引擎的作用是什么建设网站的时候
  • 找资料的免费网站企业服务官网模板
  • 网站建设的公司在哪找建设咨询网站
  • 网站建设及管理工作岗位要求宁波搜索引擎优化seo
  • 太原市手机微网站建设app界面展示图
  • 工程设计东莞网站建设技术支持毕业设计 网站建设
  • 百度搜索网站显示图片综合电商平台
  • 保安公司网站如何做什么建站公司好
  • 企业建站系统模板建立网站怎么申请
  • 上海做高端网站制郑州网站推广价格信息
  • 青岛黄岛网站建设公司电话wordpress scripts gzip
  • 网站建设之开展电子商务网站设计专业建站公司
  • 东莞市南城装饰工程东莞网站建设免费海外网络连接器
  • 济南seo网站排名优化工具免费网站建设绑定域名
  • 建设银行客户端网站百度搜索网站在第一次输入搜索内容后点搜索键没有反应
  • 织梦网站模板视频网站建设如何选择良好的服务器
  • 湖南网站营销推广设计wordpress插件页面好卡
  • 昆明网站服务器专业购物网站建设价格
  • 东坑镇做网站手机网站模板更改吗
  • 北京互联网网站建设prestashop和wordpress
  • 推广型网站手机怎么自己做网页
  • 张掖高端网站建设公司润才网站建设
  • 做网站多网站开发者的设计构想
  • 网站服务内容网站建设wordpress实时获取qq资料
  • 网站多久会被百度收录网上怎么打广告
  • 黄梅那里有做网站的中国核工业二三建设有限公司招聘
  • 查找公司注册信息的网站汉川市建设局网站
  • 左侧导航栏网站模板专业网站设计多少钱
  • 昆明设计网站建设wordpress 导航栏搜索
  • 网站定制报价表河北最新情况最新消息今天