Python基于smtplib协议实现发送邮件
作者:多测师_王sir 发布时间:2021-03-02 07:26:36
标签:Python,smtplib,协议,发送,邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。
Python创建 SMTP 对象语法如下:
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
参数说明:
host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。
代码如下
#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, title):
"""
发送邮件的功能函数
:param filename: 文件的路径
:param title: 邮件的主题
: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"] = title
# 发件人
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"))
来源:https://www.cnblogs.com/xiaoshubass/p/13021508.html


猜你喜欢
- Go语言的内置函数 copy() 可以将一个数组切片复制到另一个数组切片中,如果加入的两个数组切片不一样大,就会按照其中较小的那个数组切片的
- 做机器学习的一定对支持向量机(support vecto
- FFmpeg简介FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录
- 一、业务需求在使用Python进行业务开发的时候,需要将一些数据保存到本地文件存储,方便后面进行数据分析展示。二、需求分析通过查看需求可得出
- <?php/** * 车票接口类 * * @author chepiao100 * 
- Firefox 3.5已经发布了几个月了,且已经历5次小幅更新。而基于Gecko 1.9.2的Firefox 3.6也已经开发数月,现在已经
- 曾经有许多创造性的logo设计案例,logo设计资源和logo设计指导张贴在互联网的各个角落。这些帮助会为你的logo设计创造一个功能强大的
- 函数input()的工作原理函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便
- 定义神经网络继承nn.Module类;初始化函数__init__:网络层设计;forward函数:模型运行逻辑。class NeuralNe
- 首先,说明一下python确实可以根据照片获取地理位置,但是也是有一定的限制条件的。获取照片地理位置的实现思路是这样的:通过提取照片中的经纬
- 关于SQL查询效率,100w数据,查询只要1秒,与您分享:机器情况:p4: 2.4内存: 1 Gos: windows 2003数据库:SQ
- 今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题:本人是m
- window运行:regedit然后找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Contro
- 语言:Python IDE:Python.IDE需求 做出彩虹效果颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩
- CSS命名规范一.文件命名规范全局样式:global.css;框架布局:layout.css;字体样式:font.css;链接样式:link
- 今天看一个水友说他的MySQL现在变的很慢。问什么情况时。说单表超过2个G的一个MyISAM。真垃圾的回答方式。 &n
- 这几天做个了项。就是微信扫描二维码的然后进入公众号网页巴拉巴拉的,然后就很顺利的遇到了在安卓端扫码的时候,顺利的一塌糊涂,然后到了苹果端的时
- 使用tkFileDialog实现文件选择、保存和路径选择概述看了下Tkinter的文档,对于Pop-up dialog有三类,现在用到的是t
- windows下如果同时安装了python 32 位版本和64位版本,如何简便地启动指定的版本?# 启动python 3 32位版本py -
- 对于yolo系列,应用广泛,在win10端也有很大的应用需求,所以这篇文章给出win10环境下的安装教程。先给出系列文章win10+anac