Python实现邮件发送功能的示例详解

作者:许华添 时间:2022-08-18 13:15:43 

想实现发送邮件需要经过以下几步:

1、登录邮件服务器

2、构造符合邮件协议规则要求的邮件内容

3、发送

Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件,它对smtp协议进行了简单的封装。

这里我们用qq邮箱为例,并且自己是可以给自己发邮件的。

在开始前我们先做准备工作:

登录qq邮箱,后点击“设置”

Python实现邮件发送功能的示例详解

点击“账户”

Python实现邮件发送功能的示例详解

确保前两项已开启,然后点击生成授权码。

因为我们网页登录时的密码是不可以用来python上使用;qq为了安全,我们平常用网页或者qq官方的客户端可以用我们的qq密码登录,但是第三方(比如python)是不可以登录的。

所以要生成第三方授权码。

Python实现邮件发送功能的示例详解

Python实现邮件发送功能的示例详解

代码

import smtplib
from email.mime.text import MIMEText  # 邮件正文
from email.header import Header  # 邮件头

# 登录邮件服务器
smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人的SMTP服务器,端口号25
smtp_obj.login("你的qq账号", 'admc********')  # 括号中的内容分别是发件人邮箱账号、授权码
smtp_obj.set_debuglevel(1)  # 显示调试信息,可以不用写

# 设置邮件头信息
msg = MIMEText("测试用Python发送email。", "plain", "utf-8")  # 正文内容
msg['From'] = Header("小天天", 'utf-8')  # 发件人名字
msg["To"] = Header("有缘人", "UTF-8")  # 接收者名字
msg["Subject"] = Header('用Python发送邮件2022', 'utf-8')  # 主题

# 发送
smtp_obj.sendmail('发送人邮箱', ['接收人邮箱'], msg.as_string())
#第一个是发送人邮箱;第二个是数组,说明可以给多个人发送;msg就是刚刚写的发送内容。

运行代码

Python实现邮件发送功能的示例详解

细节:SMTP使用是25端口,SSL使用的是456端口;SMTP是明文发送,SSL是加密发送

发送html格式的内容

import smtplib
from email.mime.text import MIMEText  # 邮件正文
from email.header import Header  # 邮件头

# 登录邮件服务器
smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人的SMTP服务器,端口号25
smtp_obj.login("2308748900", 'admcwiwxxgmwdifh')  # 括号中的内容分别是发件人邮箱账号、邮箱密码
smtp_obj.set_debuglevel(1)  # 显示调试信息,可以不用写

# 设置邮件头信息
# HTML
msg_body='''
   <h4>python发送html格式的邮件</h4>
   <p>
       测试用HTML格式发送邮件
   </p>
'''
msg = MIMEText(msg_body, "html", "utf-8") # 将plain改成html
msg['From'] = Header("小天天", 'utf-8')  # 发件人名字
msg["To"] = Header("有缘人", "UTF-8")  # 接收者名字
msg["Subject"] = Header('用Python发送邮件2022', 'utf-8')  # 主题

# 发送
smtp_obj.sendmail('2308748900@qq.com', ['2308748900@qq.com'], msg.as_string())

主要代码和上面基本一样,只是将文本改成html的代码内容而已

Python实现邮件发送功能的示例详解

来源:https://blog.csdn.net/gushendezhufu/article/details/127587989

标签:Python,邮件,发送
0
投稿

猜你喜欢

  • 在 Jupyter 中重新导入特定的 Python 文件(场景分析)

    2021-01-30 01:16:57
  • CentOS6.5设置Django开发环境

    2022-09-29 22:55:30
  • ASP开发中有用的函数(function)集合(1)

    2008-10-14 17:10:00
  • Python个人博客程序开发实例信息显示

    2022-07-06 15:31:05
  • Python实现telnet服务器的方法

    2023-01-21 22:45:18
  • Python2.x版本中maketrans()方法的使用介绍

    2021-02-14 21:04:25
  • 使用PyCharm创建Django项目及基本配置详解

    2021-03-31 10:51:36
  • python使用paramiko执行服务器脚本并拿到实时结果

    2021-06-02 17:54:29
  • php实现网站留言板功能

    2023-11-23 21:06:36
  • 一空间多域名绑定不同目录方法

    2009-03-09 18:32:00
  • 使用python爬虫获取黄金价格的核心代码

    2023-11-03 22:55:28
  • python实现根据图标提取分类应用程序实例

    2022-07-23 16:22:39
  • pywinauto自动化操作记事本

    2021-07-19 03:01:57
  • 使用Filter实现信息的二次检索

    2007-10-08 19:19:00
  • python列表插入append(), extend(), insert()用法详解

    2021-05-12 13:32:40
  • PHP Session变量不能传送到下一页的解决方法

    2023-11-15 01:41:29
  • OpenCV实现车辆识别和运动目标检测

    2023-09-22 18:55:40
  • Python如何设置指定窗口为前台活动窗口

    2022-01-22 02:20:02
  • python实现关闭第三方窗口的方法

    2023-11-01 17:25:09
  • Python函数式编程指南:对生成器全面讲解

    2022-09-26 05:56:17
  • asp之家 网络编程 m.aspxhome.com