Python SMTP发送邮件的简易教程

Python语言实用性非常强,发送邮件也是Python功能之一。Python内置对SMTP的支持。使用SMTP可以发送电子邮件,SMTP则是Python处理电子邮件的标准协议。

一、连接SMTP服务器

要使用SMTP发送邮件,必须首先进行SMTP服务器的连接,Python的SMTP库提供了SMTP类,可以方便地和SMTP服务器进行对话。连接SMTP服务器,需要在Python脚本中引入SMTP模块,示例如下:

import smtplib

使用SMTP类,需要创建SMTP对象实例,需要传入SMTP主机地址和端口号。不同邮件服务提供商的SMTP服务器地址不同。以下代码以QQ邮箱为例示范SMTP连接:

# 导入SMTP模块
import smtplib

# 配置邮箱服务器地址和端口号
SMTP_SERVER = 'smtp.qq.com'
SMTP_PORT = 465

# 登录邮箱服务器
server = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT)

在创建SMTP对象实例时,为了确保用户的个人信息安全,可以选择采用SSL协议进行SMTP连接。

在SMTP连接成功后,还需要进行登录认证。使用SMTP对象的login方法可以轻松地进行邮件服务器认证:

# 登录邮箱服务器
server.login(sender_email, password)

其中,sender_email为邮件发送方邮箱,password为登录邮箱对应的密码。

二、构建邮件

SMTP连接成功后,就可以进行邮件的构建了。Python的email库提供了EmailMessage类,可以轻松地构建邮件。以下是Python构建邮件的示例代码:

from email.message import EmailMessage

# 创建EmailMessage对象
message = EmailMessage()

# 设置邮件主题
message['Subject'] = 'Python SMTP发送邮件的简易教程'

# 添加接收方地址
recipients = ['receiver_1@example.com', 'receiver_2@example.com']
message['To'] = ', '.join(recipients)

# 添加邮件正文
message.set_content('这是一封Python SMTP发送的简易教程邮件。')

# 添加邮件附件
attachment_path = r'/path/to/attachment/file'
with open(attachment_path, 'rb') as file:
    attachment_data = file.read()
    attachment_name = 'attachment.txt'
message.add_attachment(attachment_data, maintype='application', subtype='octet-stream', filename=attachment_name)

EmailMessage对象包含邮件的主题、收件人、邮件正文和附件等信息。要添加附件,可以使用EmailMessage对象的add_attachment方法添加附件。需要注意的是,添加附件需要将附件内容读入内存,然后作为参数传递。

三、发送邮件

构建好邮件之后,就可以使用SMTP类的send_message方法将邮件发送出去了:

# 发送邮件
server.send_message(from_addr=sender_email, to_addrs=recipients, msg=message)

# 关闭SMTP连接
server.quit()

send_message方法接收发件人、收件人和邮件内容作为参数,并将邮件发送出去。发送完成后,还需要使用SMTP类的quit方法关闭SMTP连接

四、完整示例

以下是Python SMTP发送邮件的完整示例:

import smtplib
from email.message import EmailMessage

# 配置邮箱服务器地址和端口号
SMTP_SERVER = 'smtp.qq.com'
SMTP_PORT = 465

# 邮箱账号和密码
sender_email = 'your_email@example.com'
password = 'your_password'

# 接收方邮箱
recipients = ['recipient_1@example.com', 'recipient_2@example.com']

# 创建SMTP连接
server = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT)

# 登录邮箱
server.login(sender_email, password)

# 创建EmailMessage对象
message = EmailMessage()

# 设置邮件主题
message['Subject'] = 'Python SMTP发送邮件的简易教程'

# 添加接收方地址
message['To'] = ', '.join(recipients)

# 添加邮件正文
message.set_content('这是一封Python SMTP发送的简易教程邮件。')

# 添加邮件附件
attachment_path = r'/path/to/attachment/file'
with open(attachment_path, 'rb') as file:
    attachment_data = file.read()
    attachment_name = 'attachment.txt'
message.add_attachment(attachment_data, maintype='application', subtype='octet-stream', filename=attachment_name)

# 发送邮件
server.send_message(from_addr=sender_email, to_addrs=recipients, msg=message)

# 关闭SMTP连接
server.quit()

以上就是Python SMTP发送邮件的简易教程,可以轻松地使用Python发送电子邮件了。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/244367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:01
下一篇 2024-12-12 13:01

相关推荐

  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论