您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python 发送SMTP邮件的简单教程

51自学网 2021-10-30 22:26:48
  python
这篇教程Python 发送SMTP邮件的简单教程写得很实用,希望能帮到您。

一、两个模块

Python使用SMTP发送邮件的两个模块:smtplib模块、email模块。

  • smtplib:负责发送邮件
  • email:负责构建邮件

二、SMTP端口

1)未加密端口,smtplib.SMTP接口,端口:25
2)使用SSL加密,smtplib.SMTP_SSL接口,端口:465
3)使用TLS加密,端口:587 

三、四大步骤

1、构造邮件内容

# 纯文本msg = MIMEText(content) # 附件msg = MIMEMultipart()

2、连接邮件服务器

s = smtplib.SMTP("smtp.qq.com", 25)

3、登陆邮件服务器

s.login(msg_from, passwd) 

msg_from:指发送者的邮箱

passwd:指发送者的密码,这个密码不是你的QQ登陆密码,而是你在QQ邮箱设置开启SMTP之后的一个授权码

4、发送邮件

s.sendmail(msg_from, msg_to, msg.as_string())

msg_from:发送方
msg_to:收件方
msg.as_string():要发送的消息

四、常用场景

1、纯文本邮件

import smtplibfrom email.mime.text import MIMETextfrom 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()

2、发送html文本

import smtplibfrom email.mime.text import MIMETextfrom 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" rel="external nofollow" >这是一个链接</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()

3、发送附件

import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom 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()

以上就是Python 发送SMTP邮件的简单教程的详细内容,更多关于Python 发送邮件的资料请关注51zixue.net其它相关文章!


Python开发工具Pycharm的安装以及使用步骤总结
Django REST framework 限流功能的使用
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。