Python入门进阶教程-邮件发送

「关注我,和我一块儿放下灵魂,让灵魂去搬砖。」html

Python邮件发送

Python版本3.8.0,开发工具:Pycharmpython

首先须要了解python的smtplib提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。web

那什么是smtp协议呢?正则表达式

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。编程


邮件发送

Python建立 SMTP 对象bash

import smtplib

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
复制代码

参数说明服务器

  • host: SMTP 服务器主机。 你能够指定主机的ip地址或者域名如:runoob.com,这个是可选参数。
  • port: 若是你提供了 host 参数, 你须要指定 SMTP 服务使用的端口号,通常状况下SMTP端口号为25。
  • local_hostname: 若是SMTP在你的本机上,你只须要指定服务器地址为 localhost 便可。

Python SMTP对象使用sendmail方法发送邮件微信

参数说明多线程

  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息

实例

设置发件人信息app

# 发件人邮箱
username = "xxxxxxx@qq.com"
# QQ邮箱受权码
password = "xxxxxxxxx"
复制代码

设置收件人信息

# 可设置多个收件人邮箱
receivers = ['xxxxxxx@qq.com''yyyyyyy@qq.com']

# 设置抄送人信息,可多个,逗号分隔
cc = ['zzzzzzzz@qq.com']
复制代码

设置发送内容,标题+内容+附件等

# 设置标题
subject = "我是邮箱标题"
# 设置内容
content = "我是邮箱内容"
# 建立MIMEMultipart对象,并封装相应的数据
message = MIMEMultipart()
# 封装标题
message['Subject'] = Header(subject, 'gbk')
# 封装发件人标识
message['From'] = "每日推送"
# 封装收件人和抄送人
message['to'] = Header(",".join(receivers))
message['Cc'] = Header(",".join(cc))
# 生成邮件正文,能够是html
msgText = MIMEText(content, "plain""utf-8")
# 封装邮件正文
message.attach(msgText)
复制代码



建立实例,发送邮件

# 设置smtp的相关参数
smtp_server = 'smtp.qq.com'
smtp_port = 25
smtp = smtplib.SMTP(smtp_server, smtp_port)

# 登陆
smtp.login(username, password)
# 发送邮件
smtp.sendmail(username, receivers+cc, message.as_string())
smtp.quit()
复制代码

其余功能

邮件正文应用 html

# 更改content内容格式为html 
send_text = MIMEText(content, "html", "utf-8")


# 邮件正文html模板
content = """
<html>
<h1>html测试:</h1>
<p>测试1</p>
<a href="https://www.hao123.com/">hao123</a>
<br>
<a href="https://www.baidu.com/?tn=sitehao123">baidu</a>
<br>
<p><img src="cid:image" alt="图片" width="100" height="100"></a></p>
<br>
<a href="#">图片介绍</a>
</html>
"""
复制代码

邮件正文中添加图片

# 读取文件并建立MIMEImage
fp = open(file_path, 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
# 定义图片 ID,在 HTML 文本中引用
msgImage.add_header('Content-ID', '<image>')
message.attach(msgImage)
复制代码

邮件正文中添加附件

# 读取csv文件做为附件
send_file_path = "xxxxxx"
# 发送附件
addfile = MIMEText(open(send_file_path, 'rb').read(), 'base64''gbk')
addfile['Content-Type'] = 'application/octet-stream'
addfile.add_header('Content-Disposition''attachment', filename='文件名称.csv')
message.attach(addfile)
复制代码

带附件的邮件发送成功截图以下:

图片

关注微信公众号【知秋小梦】后台回复邮件附件获取源代码

带html格式及图片的邮件发送成功截图以下:

关注微信公众号【知秋小梦】后台回复邮件html获取源代码


发送邮件的用处仍是挺大的,当你的自动运行脚本写好后,能够设置发送处理结果到你的邮箱中,或者直接经过邮箱发给其余同事,省时省力,建议掌握。


系列文章传送门

Python入门进阶教程-时间序列

Python入门进阶教程-JSON操做

Python入门进阶教程-多线程与多进程

Python入门进阶教程-正则表达式

Python入门进阶教程-面向对象

Python入门基础汇总



Python系列

Python系列会持续更新,从基础入门到进阶技巧,从编程语法到项目实战。若您在阅读的过程当中发现文章存在错误,烦请指正,很是感谢;若您在阅读的过程当中能有所收获,欢迎一块儿分享交流。

若是你也想和我一块儿学习Python,能够关注我

学习Python,咱们不仅是说说而已

相关文章
相关标签/搜索