import smtplib

from email.mime.text import MIMEText

email_host = 'smtp.163.com' # 邮箱地址

email_user = 'szz_mail@163.com' # 发送者账号

email_pwd ='woshinige123' # 发送者密码

maillist = '1204044738@qq.com'

# 收件人邮箱,多个账号的话,用逗号隔开

msg = MIMEText('hai all:'

'这是邮件的内容请查收,请看附件') # 邮件内容

msg['Subject'] = '测试邮件' # 邮件主题

msg['From'] = email_user # 发送者账号

msg['To'] = maillist # 接收者账号列表

smtp = smtplib.SMTP(email_host, port=25)

# 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25

smtp.login(email_user, email_pwd) # 发送者的邮箱账号,密码

smtp.sendmail(email_user, maillist, msg.as_string())

# 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串

smtp.quit() # 发送完毕后退出smtp

print('成功')

实现功能:(这是转发的):

邮件发送,支持文字,音频文件,文本文件,图形文件,应用程序及其它类型文件的发送;

支持不同的邮箱;

支持一次性往多个邮箱发送;

支持一次性发送n个附件;

支持中文命名的附件发送;

mail.conf配置:

[SMTP]

login_user = laiyuhenshuai@163.com

login_pwd = xxxxx

from_addr = laiyuhenshuai@163.com

to_addrs = ['mrxxx@163.com','1033553122@qq.com']

host = smtp.163.com

port = 25

说明:不同类型的邮箱(发件人邮箱),需要修改配置文件为对应的host和端口

smtp.163.com:25

smtp.qq.com:465

实践代码:

#!/usr/bin/env python

# -*- coding:GBK -*-

__author__ = 'shouke'

importConfigParser

importsmtplib

fromemail.mime.multipart importMIMEMultipart

fromemail.mime.text importMIMEText

fromemail.mime.image importMIMEImage

fromemail.mime.audio importMIMEAudio

fromemail.mime.application importMIMEApplication

importmimetypes

importos

classMyMail:

def__init__(self, mail_config_file):

config = ConfigParser.ConfigParser()

config.read(mail_config_file)

self.smtp = smtplib.SMTP()

self.login_user = config.get('SMTP', 'login_user')

self.login_pwd = config.get('SMTP', 'login_pwd')

self.from_addr = config.get('SMTP', 'from_addr')

self.to_addrs = config.get('SMTP', 'to_addrs')

self.host = config.get('SMTP', 'host')

self.port = config.get('SMTP', 'port')

#连接到服务器

defconnect(self):

self.smtp.connect(self.host, self.port)

#登陆邮件服务器

deflogin(self):

try:

self.smtp.login(self.login_user, self.login_pwd)

exceptException ase:

print('%s'% e)

#发送邮件

defsend_mail(self, mail_subject, mail_content, attachment_path_set):

#构造MIMEMultipart对象做为根容器

msg = MIMEMultipart()

msg['From'] = self.from_addr

# msg['To'] = self.to_addrs

msg['To'] = ','.join(eval_r(self.to_addrs))

msg['Subject'] = mail_subject

#添加邮件内容

content = MIMEText(mail_content, _charset='gbk')

msg.attach(content)

forattachment_path inattachment_path_set:

ifos.path.isfile(attachment_path): #如果附件存在

type, coding = mimetypes.guess_type(attachment_path)

iftype == None:

type = 'application/octet-stream'

major_type, minor_type = type.split('/', 1)

withopen(attachment_path, 'rb') asfile:

ifmajor_type == 'text':

attachment = MIMEText(file.read(), _subtype=minor_type)

elifmajor_type == 'image':

attachment = MIMEImage(file.read(), _subtype=minor_type)

elifmajor_type == 'application':

attachment = MIMEApplication(file.read(), _subtype=minor_type)

elifmajor_type == 'audio':

attachment = MIMEAudio(file.read(), _subtype=minor_type)

#修改附件名称

attachment_name = os.path.basename(attachment_path)

attachment.add_header('Content-Disposition', 'attachment', filename = ('gbk', '', attachment_name))

msg.attach(attachment)

#得到格式化后的完整文本

full_text = msg.as_string()

#发送邮件

self.smtp.sendmail(self.from_addr, eval_r(self.to_addrs), full_text)

#退出

defquit(self):

self.smtp.quit()

if__name__ == '__main__':

mymail = MyMail('./mail.conf')

mymail.connect()

mymail.login()

mail_content = 'hello,亲,这是一封测试邮件,收到请回复^^ 2014'

mymail.send_mail('邮件标题--亲,收到一份邮件,请及时查收', mail_content, {'d:\\shouke.csv', 'd:\\2345haoya_3.1.1.9229.exe',

'd:\\shouke.ini','d:\\shouke.ini', 'd:\\test.mp3', 'd:\\test.png', 'd:\\report20150507204645.html',

'd:\\1 -副本.sql'})

mymail.quit()

基于python的毕业论文邮箱收发系统_基于Python实现邮件发送相关推荐

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

    发邮件功能 有很多种,我目前 使用的是python的smptlib 模块提供的发邮件功能,可以使用里面的SMTP对象的sendmail方法发邮件. # -*- coding: utf-8 -*- '' ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. OKR是什么?-源目标OKR
  2. TechParty Mini.0
  3. Python3学习笔记----环境安装及文本编辑器的选择
  4. sql server 对特殊字符的提取表达式
  5. matcaffe的blob维度顺序
  6. 基于haproxy+keepalive+varnish实现lnmp企业级架构
  7. HttpResponseCache的使用缓存cache
  8. 《影响力》6个使人顺从的武器之一互惠原理深入剖析
  9. 门户网站服务器迁移,云服务器怎么迁移网站
  10. JSP:Java Server Page(1)
  11. golang mysql连接池原理_redis mysql 连接池 之 golang 实现
  12. printf 重新实现put_Go 实现海量日志收集系统(四)
  13. JNI编程中数据类型转换的方法
  14. 55. Yii import class 与 对象创建
  15. NYOJ题目252-01串(动态规划)
  16. mysql group by 用法解析(详细)
  17. GIS基础软件技术体系发展及展望
  18. vpay模式软件开发 vpay系统
  19. iOS及Android消息推送方案安装使用入门
  20. 初级使用xenu,windows10系统安装完无法运行

热门文章

  1. HashMap,TreeMap,LinkedHashMap学习
  2. Kafka设计解析(三):Kafka High Availability (下)
  3. 201111-W-网络技术-基础理论与应用说明
  4. 【SpringBoot_ANNOTATIONS】 生命周期 03 @PostConstruct @PreDestroy
  5. JavaWeb开发Listener学习
  6. mybatis中的mapper代理模式的数据传参的应用
  7. 启动虚拟机连接教程,连接教学,一级初级开发虚拟机中的简单指令
  8. MySQL数据库所有知识点最详细讲解,内置官方文档、个人理解、代码演示,自学MySQL必备文档(一)
  9. java进程宕机生产core_Java应用/JVM宕机排查步骤操作
  10. java普通工程打war包_普通java工程(Java Project)打jar包