热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Python和smtplib实现邮件发送功能

本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日17:24,微信:15367499889,公司:上海多测师信息有限公司。

#coding=utf-8

"""
=============================
Author: 多测师_王sir
Time: 2020/5/20 17:24
Wechat: 15367499889
Company: 上海多测师信息有限公司
=============================
"""

import os
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from common.handleconfig import conf

def send_email(filename, subject):
"""
发送邮件的功能函数
:param filename: 文件的路径
:param subject: 邮件的主题
:return:
"""

# 第一步:连接邮箱的SMTP服务器,并登录
smtp = smtplib.SMTP_SSL(host=conf.get("email", "host"), port=conf.getint("email", "port"))
smtp.login(user=conf.get("email", "user"), password=conf.get("email", "pwd"))

# 第二步:构建一封邮件
# 创建一封多组件的邮件
msg = MIMEMultipart()

with open(filename, "rb") as f:
cOntent= f.read()

# 创建邮件文本内容
text_msg = MIMEText(content, _subtype="html", _charset="utf8")
# 添加到多组件的邮件中
msg.attach(text_msg)

# 创建邮件的附件
report_file = MIMEApplication(content)
report_file.add_header('content-disposition', 'attachment', filename=os.path.split(filename)[-1])
# 将附件添加到多组件的邮件中
msg.attach(report_file)

# 设置邮件主题
msg["Subject"] = subject

# 设置发件人
msg["From"] = conf.get("email", "from_addr")

# 设置收件人
msg["To"] = conf.get("email", "to_addr")

# 第三步:发送邮件
smtp.send_message(msg, from_addr=conf.get("email", "from_addr"), to_addrs=conf.get("email", "to_addr"))


推荐阅读
  • 利用Python实现自动化群发邮件
    本文详细介绍如何使用Python语言来实现邮件的自动群发功能,适合希望提高工作效率的技术爱好者和开发者。 ... [详细]
  • 本文深入探讨了网络编程中的基本概念,如指针、引用和可重入函数,并详细介绍了OSI七层模型和TCP/IP四层模型的功能与协议。同时,文章还对比了HTTP与HTTPS的区别,分析了HTTP请求报文的结构,讨论了TCP与UDP的主要差异,以及滑动窗口协议的工作原理。 ... [详细]
  • 转自:http:www.yybug.comread-htm-tid-15324.html为什么使用Twisted? 如果你并不准备使用Twisted,你可能有很多异议。为什么使用T ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统上快速安装和配置Bitnami版本的GitLab,包括下载安装文件、执行安装过程以及设置邮件服务等步骤。 ... [详细]
  • 深入理解IIS:全面解析与应用
    本文详细介绍了IIS(Internet Information Services)的功能及其在不同Windows系统中的应用,探讨了IIS如何支持多种网络服务,如Web、FTP、NNTP和SMTP,并解释了其在现代网站开发和服务器管理中的重要性。 ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
  • 2023年最新:PHP本地端口配置详解
    本文详细介绍了PHP在不同环境下的本地端口配置方法及常见问题解决方案,帮助开发者更好地理解和配置PHP端口。 ... [详细]
  • 本文提供了详细的指导,帮助开发者了解如何使用PHP插件进行网站内容的翻译,特别是针对WordPress插件和主题的汉化及多语言支持。 ... [详细]
author-avatar
手机用户美佛_885
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有