Python发送SMTP邮件指南
一、两个模块
二、SMTP端口
三、四大步骤
# 纯文本
msg = MIMEText(content) # 附件
msg = MIMEMultipart()
s = smtplib.SMTP("smtp.qq.com", 25)
s.login(msg_from, passwd)
msg_from:指发送者的邮箱
![](https://img2020.cnblogs.com/blog/746846/202106/746846-20210607114331006-677337472.png)
s.sendmail(msg_from, msg_to, msg.as_string())
msg_from:发送方
四、常用场景
import smtplib
from email.mime.text import MIMEText
from email.header import Header # 发送者
msg_from = "xxxxx@qq.com" # 这里的密码不是QQ邮箱的密码,而是在设置里开启SMTP服务器后的授权码
passwd = "xxxxx" # 接受者
msg_to = "xxxx@qq.com" # 邮件文本
content = 'Python 邮件发送测试...' # 邮件主题
subject = "test" # 生成一个MIMEText对象(还有一些其它参数)
msg = MIMEText(content) # 放入邮件主题
msg['Subject'] = Header(subject, 'utf-8') # 放入发件人
msg['From'] = msg_from try:
# 连接邮件服务器
s = smtplib.SMTP("smtp.qq.com", 25) # 登录到邮箱
s.login(msg_from, passwd) # 发送邮件:发送方,收件方,要发送的消息
s.sendmail(msg_from, msg_to, msg.as_string())
print('成功')
except s.SMTPException as e:
print(e)
finally:
s.quit()
import smtplib
from email.mime.text import MIMEText
from email.header import Header # 发送者
msg_from = "xxxx@qq.com" # 这里的密码不是QQ邮箱的密码,而是在设置里开启SMTP服务器后的授权码
passwd = "xxxx" # 接受者
msg_to = "xxxx@qq.com" # 邮件文本
content = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.baidu.com">这是一个链接</a></p>
""" # 邮件主题
subject = "test" # 生成一个MIMEText对象(
msg = MIMEText(content, 'html', 'utf-8') # 放入邮件主题
msg['Subject'] = Header(subject, 'utf-8') # 放入发件人
msg['From'] = msg_from try:
# 连接邮件服务器
s = smtplib.SMTP("smtp.qq.com", 25) # 登录到邮箱
s.login(msg_from, passwd) # 发送邮件:发送方,收件方,要发送的消息
s.sendmail(msg_from, msg_to, msg.as_string())
print('成功')
except s.SMTPException as e:
print(e)
finally:
s.quit()
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header # 发送者
msg_from = "xxxx@qq.com" # 这里的密码不是QQ邮箱的密码,而是在设置里开启SMTP服务器后的授权码
passwd = "xxxx" # 接受者
msg_to = "xxxx@qq.com" # 邮件主题
subject = "test" # 生成一个MIMEMultipart对象(
msg = message = MIMEMultipart() # 邮件文本
message.attach(MIMEText('这是菜鸟教程Python 邮件发送测试……', 'plain', 'utf-8')) # 放入邮件主题
msg['Subject'] = Header(subject, 'utf-8') # 放入发件人
msg['From'] = msg_from # 添加附件
att1 = MIMEText(open('./wordcloud_singer.py', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="test.txt"'
msg.attach(att1) try:
# 连接邮件服务器
s = smtplib.SMTP("smtp.qq.com", 25) # 登录到邮箱
s.login(msg_from, passwd) # 发送邮件:发送方,收件方,要发送的消息
s.sendmail(msg_from, msg_to, msg.as_string())
print('成功')
except s.SMTPException as e:
print(e)
finally:
s.quit()
五、写在最后
李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。
Python发送SMTP邮件指南的更多相关文章
- python发送smtp 邮件 图片
#-*- coding: utf-8 -*- # python2 import os import time import random import smtplib from time import ...
- 【Python开发】python发送各类邮件的方法
转载: python发送各类邮件的主要方法 python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点. 一.相关模块介绍 发送 ...
- 使用python发送163邮件 qq邮箱
使用python发送163邮件 def send_email(title, content): import smtplib from email.mime.multipart import MIME ...
- 使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误
使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误 这个错误是验证出现错误, $mail->Port = 25; //SMT ...
- 九、Python发送QQ邮件(SMTP)
看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 ...
- 使用python发送QQ邮件
这里用到了Python的两个包来发送邮件: smtplib 和 email . Python 的 email 模块里包含了许多实用的邮件格式设置函数,可以用来创建邮件“包裹”.使用的 MIMEText ...
- 【python】smtp邮件发送
纯文本: #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from ...
- python 发送安全邮件
用python 写了一个发送邮件的脚本,配上host 和端口,发现一直报错: smtplib.SMTPException: No suitable authentication method foun ...
- python发送各类邮件的主要方法
更多详见: http://www.w3cschool.cc/python/python-email.html python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法 ...
随机推荐
- .NET6 平台系列4 .NET开源之路
系列目录 [已更新最新开发文章,点击查看详细] .NET平台是微软于2000年推出的Windows操作系统的应用软件开发框架,发展至今形成巨大的技术栈,涉及多语言(支持C#.F#.VB.NET ...
- 关于Redis客户端显示中文或中文乱码问题的解决
关于Redis客户端不显示中文或者显示中文乱码,网上有些解决办法不全面的,都是漏了步骤不讲,简直瞎扯.在此记录一下解决方式. 刚开始使用Redis客户端的时候,本身就是默认不支持显示中文的. 例如,进 ...
- 粗浅聊聊Python装饰器
浅析装饰器 通常情况下,给一个对象添加新功能有三种方式: 直接给对象所属的类添加方法: 使用组合:(在新类中创建原有类的对象,重复利用已有类的功能) 使用继承:(可以使用现有类的,无需重复编写原有类进 ...
- 学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18
本文首发于「HelloGitHub」微信公众号,搜索「HelloGitHub」点击关注解锁更多宝藏! 作者:HelloGitHub-小鱼干 新手开始学习的时候,都会遇到一个问题:如何开始学 xx?Se ...
- 1- java语言特性
Java概述 Java是面向对象程序设计语言和Java平台的总称 Java体系 JavaSE(j2se)(标准版) JavaEE(J2ee)(企业版) JavaME(J2me) 面向对象 面向对象是J ...
- Sqli 注入点解析
目录 Less-1: 字符型注入 Less-2: 数字型注入 Less-3: 单引号字符型+括号 Less-4: 双引号字符型+括号 Less-5: 单引号字符型+固定输出信息 (floor报错注入& ...
- Python中math和cmath模块的使用
目录 Math模块 Cmath模块 Math模块 pi 数字常量,圆周率 e 表示一个常量 sqrt(x) 求x的平方根 ...
- HTTPS协议工作原理(SSL数字证书)
目录 HTTPS SSL协议的工作过程 SSL数字证书的查看 HTTPS 我们都知道HTTP协议是明文传输的,并且不能验证对方的身份,而且不能保证数据的完整性.而当我们在网络上进行购物电子交易时,电子 ...
- MS06-040漏洞研究(上)【转载】
课程简介 我在之前的课程中讨论过W32Dasm这款软件中的漏洞分析与利用的方法,由于使用该软件的人群毕竟是小众群体,因此该漏洞的危害相对来说还是比较小的.但是如果漏洞出现在Windows系统中,那么情 ...
- 使用C#进行数据库增删改查ADO.NET(二)
这节接着讲用C#进行数据库CRUD,高级部分. 事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改.C#提供了SqlTransac ...