发邮件功能 有很多种,我目前 使用的是python的smptlib 模块提供的发邮件功能,可以使用里面的SMTP对象的sendmail方法发邮件。

# -*- coding: utf-8 -*-

'''

Created on 2018年1月4日

@author: Susan

'''

import smtplib

from email.mime.text import MIMEText

#MIMEMultipart类用于实现多部分邮件的功能,缺省情况下它会创建Content-Type类型为mulitpart/mixed邮件。

from email.mime.multipart import MIMEMultipart

from email.header import Header

from time import sleep

#新建一个邮件发送的类文件

class MailSender(object):

#初始化登录邮箱准备发邮件

def __init__(self,smtp_server,username,pswd):

self._username = username

#创建邮件服务器对象

self.email_server =smtplib.SMTP()

#连接smtp服务器

self.email_server.connect(smtp_server, 25)

#登录邮箱

self.email_server.login(self._username, pswd)

sleep(5)

#发送邮件(将需要发送给的邮件地址、邮件标题、内容、文件类型、文件名称封装到一起)

def send(self, to_addr, subject, content, text_type='plain', attachment=None):

if attachment == None:

#创建发送邮件信息:包含创建对象

msg = MIMEText(content, text_type,'utf-8')

#创建文件头内容

msg['Subject'] = Header(subject,'utf-8')

#显示文件来是邮谁哪个邮箱发出的

msg['From'] = 'Susan<' + self._username + '>'

#显示 发送到哪些地址

msg['To'] = to_addr

elif isinstance(attachment, list):

msg = MIMEMultipart()

msg['Subject'] = Header(subject, 'utf-8')

msg['From'] = 'Susan<' + self._username + '>'

msg['To'] = to_addr

# 构造附件1,传输E:\目录下的zy.txt文件

att = MIMEText(open(attachment, "rb").read(), 'base64', 'utf-8')

att['Content-Type'] = 'application/octet-stream'

att['Content-Disposition'] = 'attachment; filename=%s'%attachment

msg.attach( MIMEText(content, text_type, 'utf-8') )

msg.attach(att)

elif isinstance(attachment, str):

msg = MIMEMultipart()

msg['Subject'] = Header(subject, 'utf-8')

msg['From'] = 'Susan<' + self._username + '>'

msg['To'] = to_addr

#构造附件1,传输E:\目录下的zy.txt文件

att = MIMEText(open(attachment, "rb").read(), 'base64', 'utf-8')

sleep(1)

att['Content-Type'] = 'application/octet-stream'

att['Content-Disposition'] = 'attachment; filename=%s'%attachment

msg.attach( MIMEText(content, text_type, 'utf-8') )

msg.attach(att)

else:

raise Exception, "attachment参数非法"

self.email_server.sendmail(self._username, to_addr, msg.as_string())

return

def quit(self):

# 结束SMTP会话

self.email_server.quit()

#发送测试报告

def send_test_report(report, subject, content, to_addrs):

#将使用发邮件的邮箱服务器名称 、邮箱及密码传送给Mailsengder类进行初始化

ms = MailSender("smtp.sohu.com","xx@sohu.com","ssss")

#如果是发送多个邮箱,就执行第一个条件,如果只有一个邮箱执行elif条件,否则就认为收件人参数格式不正确。

try:

if isinstance(to_addrs, list):

for to_addr in to_addrs:

ms.send(to_addr, subject, content, "plain", report)

elif isinstance(to_addrs, str):

ms.send(to_addrs, subject, content, "plain", report)

else:

raise Exception, "收件人参数格式无效,必须是字符串类型"

#发完邮件后退出发邮件系统

ms.quit()

print (u"发送成功,请注意查收邮箱")

except smtplib.SMTPException:

print(u"Erro:发送邮件失败")

if __name__ == '__main__':

send_test_report("E:\\zy.txt","发邮件测试!",'对邮件封装后的测试!','sss@qq.com')

这个里面所注意的是:所发送的文件名称 尽量用英文,中文名称是python很多时候不兼容的。

基于python的毕业论文邮箱收发系统_基于python语言的自动化邮件发送总结相关推荐

  1. 基于python的毕业论文邮箱收发系统_Python 收发Email的实现

    关于Email的基础知识就不说,直接进入Python主题. 一 发送Email 简单邮件传输协议(SMTP)大家应该都很熟悉了,在python中也有一个smtplib的模块来实现发送邮件的功能,一般的 ...

  2. python flask实现博客系统_基于Flask的博客网站设计与实现

    涂远杰 郑剑 摘要:该博客系统是一款分享型博客,注重个人的学习心得.生活等方面的记录.后台基于Python中的Flask框架开发,还涉及爬虫,数据库使用的是轻型的SQLite,同时,前端页面的实现涉及 ...

  3. python开发出来的crm系统_用Python打造一个CRM系统(三)

    在上一篇中我们基于cookiecutter-django创建了一个one_crm的项目,在本文中将在本地进行初始化,并成功运行起来. 本地初始化之前先确保环境先安装了Python3.8.Postgre ...

  4. python开发出来的crm系统_用Python打造一个CRM系统(二)

    在上一篇中介绍了CRM和Django,在本篇中将聊聊Django的最佳实践. 总的来说就是遵循Django的设计理念:松耦合.代码精简.快速开发.DRY.明确优于隐式.一致性等.下面从开发环境.项目组 ...

  5. 基于Java的电子作业提交系统_基于jsp的网上作业提交系统-JavaEE实现网上作业提交系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上作业提交系统, 该项目可用各类java课程设计大作业中, 网上作业提交系统的系统架构分为前后台两部分, 最终实 ...

  6. 基于java的网上花店销售系统_基于JAVA的鲜花销售系统(含全套CAD图纸).doc

    基于JAVA的鲜花销售系统(含全套CAD图纸) 编号 太湖学院 毕业设计(论文) 题目: 信机 系 专业 学 号: 学生姓名: 指导教师: 201年5月2日太湖学院本科毕业设计(论文) 诚 信 承 诺 ...

  7. python开发出来的crm系统_基于Django实现的CRM系统

    前言:Django是一个python大而全的前端框架,Django自带的admin也是一个不错的信息管理系统,功能多,可拓展性强.那么,我们仿照Django-admin能不能自己写代码实现admin的 ...

  8. python界面实现点餐系统_基于PythonFlask的网上点餐系统管理员后台开发

    基于PythonFlask的网上点餐系统管理员后台开发(任务书,开题报告,论文16000字,参考代码) 摘要 本文主要基于PythonFlask开发网上点餐系统管理员后台,本系统与微信小程序结合,专门 ...

  9. 基于python的智能安防系统_基于Python语言的智能家居系统研究

    龙源期刊网 http://www.qikan.com.cn 基于 Python 语言的智能家居系统研究 作者:张微微

最新文章

  1. G代码运行模拟软件-NC Viewer
  2. 内存的字符与打印出来的字符集的区别
  3. 【BZOJ3932】[CQOI2015]任务查询系统 主席树
  4. 阿里巴巴的AI革命 | 4天云栖大会干货总结
  5. jQuery MVC 科室异步联动
  6. visual studio 2019配置dlib读取jpeg图片
  7. vba手机号码归属_手机号码归属地查询代码
  8. 单片机c语言中断程序实验报告,单片机实验之外部中断应用实验
  9. navicat 使用ssh连接腾讯云主机mysql数据库(保姆级教程)
  10. 智能运维 VS 传统运维|AIOps服务管理解决方案全面梳理
  11. 桌面下雪小程序 WIN32
  12. 全局修改样式(全局颜色更改)
  13. 原始JDBC连接与封装后的JDBC
  14. 做伦敦银,这两大要点容易被忽视
  15. sgx是什么要开吗_绝了!滑滑梯设计在顶楼,上去一滑不就是直接跳…楼…吗??...
  16. 甲乙两列客车的长分别为150m和200m,它们相向行驶在平行的轨道上,已知甲车上某乘客测得乙车在他窗口外经过的时间为10秒,那么,乙车上的乘客看见甲车在他窗口外经过的时间是()
  17. java P1496 火烧赤壁
  18. 从头认识多线程-4.1 对象的发布(Publish)、逸出(Escape)以及逸出的解决方案
  19. 深圳大学信息检索:链接分析实验
  20. COMSOL java API——编译comsol模型java文件

热门文章

  1. 女神节,用python给她画朵玫瑰 !
  2. java根据生日判断生日和星座
  3. 关于网络上的刷钻方法
  4. 渗透测试面试问题集合(转载自己看,链接在开头)
  5. 从JavaScript二维数组排序说开去(2)
  6. 百钱买百鸡问题,买鸡问题的解决方案
  7. Hive beeline详解
  8. 独家爆料!在美团搞安全,是种怎样的体验?
  9. 微信小程序云开发之Node部署
  10. ERP财务管理系统有哪些特点