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

卖车网站宁波有哪些公司做网站

卖车网站,宁波有哪些公司做网站,品牌网站建设优化公司排名,怀化网站建设怎么收费在项目中#xff0c;会使用到发送邮件的功能。不同框架的配置可能有所不同#xff0c;直接写一个不依赖框架配置的邮件发送模块。 使用的功能#xff1a; 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 xxxqq.com # 发送邮件的邮箱帐号EMAIL_HOST_PASSWORD xxx # 授权码,各邮箱的设置中启用smtp服务时获取FROM_EMAIL_USER EMAIL_HOST_USER # 收件人显示发件人的邮箱FROM_EMAIL_NAME 广州市xxxx技术有限公司 # 设置发件人的名字在项目使用一般是用公司名字def __init__(self, receiver_email, subject, messageNone, html_messageNone, file_pathNone,cc_emailNone):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,fattachment; 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 [xxx163.com,yyyqq.com] #接收人邮件账号cc_email [xxxx163.com,yyyqq.com] #抄送人的邮件账号subject 登录验证码 #主题message 您的验证码是23452310分钟中内有效若非本人操作请忽视... #文本信息file_path [1.txt, 2.txt] #同目录下创建1.txt和2.txt 文件测试附件文件html_message h1登录验证码5分钟内有效/h1p您的验证码是546783/pp注意若非本人操作建议删除邮件防止泄漏验证码信息/p #html信息有这个使用这个不使用文本信息#非多线程发送email_obj_2 Email(receiver_emailreceiver_email,subjectsubject,messagemessage,file_pathfile_path,html_messagehtml_message,cc_emailcc_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 xxxqq.com # 发送邮件的邮箱帐号EMAIL_HOST_PASSWORD xxx # 授权码,各邮箱的设置中启用smtp服务时获取FROM_EMAIL_USER EMAIL_HOST_USER # 收件人显示发件人的邮箱FROM_EMAIL_NAME 广州市xxxx技术有限公司#设置发件人的名字在项目使用一般是用公司名字def __init__(self, receiver_email, subject, messageNone, html_messageNone, file_pathNone,cc_emailNone):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,fattachment; 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 [xxx163.com,yyyqq.com] #接收人邮件账号cc_email [xxxx163.com,yyyqq.com] #抄送人的邮件账号subject 登录验证码 #主题message 您的验证码是23452310分钟中内有效若非本人操作请忽视... #文本信息file_path [1.txt, 2.txt] #同目录下创建1.txt和2.txt 文件测试附件文件html_message h1登录验证码5分钟内有效/h1p您的验证码是546783/pp注意若非本人操作建议删除邮件防止泄漏验证码信息/p #html信息有这个使用这个不使用文本信息#多线程发送email_obj ThreadEmail(receiver_emailreceiver_email,subjectsubject,messagemessage,file_pathfile_path,html_messagehtml_message,cc_emailcc_email)email_obj.start() 三、通用性 1、对于脚本代码也可以直接使用 2、在框架中也可以直接使用
http://www.dnsts.com.cn/news/227151.html

相关文章:

  • 网站rp原型图怎么做互联网网站备案
  • 做羞羞的事的视频网站织梦网站一级目录
  • 做外贸需要到外汇管理网站企业网站怎么做省钱
  • 成都网站建设龙兵网络网站做导航条
  • 长春网站建设中心哪个网站做调查赚钱多
  • 网站的建设有什么好处wordpress文章加载特效
  • 网站上传文章平面设计师工作内容
  • 营销型网站建设策划案论坛网站html模板
  • 电子政务公开 网站建设记事本里做网站 怎么把字体
  • 怎么建立自己的公司网站网站建设与管理自考题
  • 做团购网站多少钱注册网站填写不了地区
  • 健身网站建设宣传册设计与制作公司
  • 做网站导流专门做油站数据的网站
  • jsp网站建设作业天津住房与城乡建设厅网站
  • 具有品牌的做pc端网站wordpress站文章显示时分秒
  • 做网站后台需要学什么做响应式网站的框架
  • 建设卒中中心几个网站浙江建设局网站
  • 网站内怎么做搜索自助建站网站seo公司
  • 网站全屏图片怎么做的网页设计基础是什么
  • iis 网站乱码营销型网站建设公司网络推广
  • 网站建设与服务费是什么服务网页打不开怎么设置
  • 机构编制网站建设asp网站开发实验报告
  • 地产建站规划编程培训多少钱
  • 阿里云 个人网站佛山市城市建设档案馆网站
  • 招财猫网站怎么做城乡建设网站投稿
  • vr技术在网站建设的应用建设网商城网站需要在那里备案
  • 蚌埠市建设学校网站微信小程序商城怎么开通
  • 试用虚拟主机不能创建网站wordpress根据点击量最高查询文章
  • 电子书网站开发互联网销售是什么意思
  • 长春企业自助建站wordpress 订单号位数