python之(改写成了类)用smtplib模块实现第三方smtp发送邮件

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#_*_ coding:utf-8 _*_
import   smtplib
from  email.mime.multipart  import  MIMEMultipart
from  email.mime.text  import  MIMEText
 
class  Sendmail:
 
     local_hostname  =  [ 'toby-ThinkPad-T430shhhh' ]
     msg  =  MIMEMultipart( 'related' )
 
     def  __init__( self ,smtp_server,mail_user,mail_pass):
         self .smtp_server  =  smtp_server
         self .mail_user  =  mail_user
         self .mail_pass  =  mail_pass
 
     def  mess( self ,theme,message):
         Sendmail.msg[ 'Subject' =  theme   # 邮件主题
         html_msg  =  '''
                 <html><head><body>
                 <p>%s</p>
                 </body></head></html>
             '''  %  message
         html  =  MIMEText(html_msg,  'html' 'utf-8' )
         Sendmail.msg.attach(html)
 
     def  files( self ,path,filenames):
         files  =  path  +  filenames
         att  =  MIMEText( open (files,  'rb' ).read(),  'base64' 'utf-8' )
         att[ "Content-Type" =  'application/octet-stream'
         att[ "Content-Disposition" =  'attachment; filename=%s'  %  filenames
         Sendmail.msg.attach(att)
 
     def  send( self ,receiver):
         smtp  =  smtplib.SMTP()
         smtp.connect( self .smtp_server)
         smtp.ehlo( self .local_hostname)   # 使用ehlo指令向smtp服务器确认身份
         smtp.starttls()   # smtp连接传输加密
         smtp.login( self .mail_user,  self .mail_pass)
         smtp.sendmail( self .mail_user, receiver, Sendmail.msg.as_string())
         smtp.quit()
if  __name__  = =  "__main__" :
 
     =  Sendmail( 'xxxx.xxxx.com' , 'xxxxx@xxxx.com' , 'xxxxxx' #实例化一个发送邮件的对象
     a.mess( 'hello world' , 'this is test mail' )    #定义主题,消息
     a.files( '/var/log/' , 'syslog.2.gz' #这是发送邮件 定义路径、文件名
     a.send( 'xxxx@qq.com' )   #收件人


本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1875021


相关文章
|
10月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1069 7
|
10月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
836 0
|
10月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
762 4
|
10月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
844 0
|
10月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
1308 0
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
295 0
Python模块与包(八)
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
761 159
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
565 159
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性

推荐镜像

更多