使用 Python 发送带抄送的邮件

在现代的工作环境中,邮件通信是不可或缺的。Python 提供了一种简单而强大的方式来通过代码发送电子邮件。本文将详细介绍如何在 Python 中实现邮件的发送以及抄送 (CC) 的功能。

一、邮件发送流程

下面是具体的操作流程,以帮助你更清晰地理解如何实现这一功能:

flowchart TD
    A[准备发送邮件] --> B[设置 SMTP 服务信息]
    B --> C[构建邮件内容]
    C --> D[创建邮件对象]
    D --> E[发送邮件]
    E --> F[完成]

流程说明

步骤 描述
A 准备发送邮件
B 设置 SMTP 服务信息
C 构建邮件内容
D 创建邮件对象
E 发送邮件
F 完成

二、步骤详解

接下来,我们将详细说明每一步需要做什么,并提供相应的代码示例。

1. 准备发送邮件

首先,你需要准备发送邮件所需的信息,包括发送者地址、接收者地址、抄送地址以及邮件主题和内容。这些信息可以通过变量定义:

# 定义邮件信息
sender_email = "your_email@example.com"  # 发送者邮箱
receiver_email = "recipient@example.com"  # 接收者邮箱
cc_email = "cc@example.com"                # 抄送邮箱
subject = "邮件主题"                       # 邮件主题
body = "你好!这是一封测试邮件。"        # 邮件正文

2. 设置 SMTP 服务信息

为了发送邮件,你需要连接到邮件服务器(SMTP 服务器)。下面是设置 SMTP 服务器的代码:

import smtplib  # 导入 smtplib 模块

# SMTP 服务器信息
smtp_server = "smtp.example.com"  # SMTP 服务器地址,替换为你的邮件服务提供商的地址
smtp_port = 587                    # SMTP 端口号,一般使用587端口
smtp_user = sender_email            # SMTP 用户名,通常为发送者的邮箱
smtp_password = "your_password"     # SMTP 密码,输入发送者的邮箱密码

3. 构建邮件内容

接下来,我们需要构建邮件的内容,包含主题、发件人与收件人信息。

from email.mime.text import MIMEText  # 导入 MIMEText 类用于构建邮件正文
from email.mime.multipart import MIMEMultipart  # 导入 MIMEMultipart 用于构建多部分邮件

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = sender_email              # 添加发件人信息
msg['To'] = receiver_email               # 添加收件人信息
msg['Cc'] = cc_email                     # 添加抄送人信息
msg['Subject'] = subject                 # 添加邮件主题

# 添加邮件正文
msg.attach(MIMEText(body, 'plain'))     # 将邮件正文添加到邮件对象中

4. 发送邮件

设置完成后,接下来是实际发送邮件的步骤。

# 连接至 SMTP 服务器并发送邮件
try:
    # 创建与 SMTP 服务器的连接
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()  # 启用 TLS 加密

    # 登录 SMTP 服务器
    server.login(smtp_user, smtp_password)  # 使用发件人的邮箱及密码进行登录

    # 发送邮件
    server.sendmail(sender_email, [receiver_email] + [cc_email], msg.as_string())  # 发送邮件

    print("邮件发送成功!")
except Exception as e:
    print(f"邮件发送失败: {e}")
finally:
    server.quit()  # 关闭与 SMTP 服务器的连接

5. 完成

经过以上步骤,邮件就成功发送了。如果你的抄送地址设置正确,对方就能收到抄送的邮件。

总结

通过以上步骤,你学会了如何使用 Python 发送带抄送的邮件。这个过程包括准备邮件信息、设置 SMTP 服务信息、构建邮件内容,最后执行发送。在实际应用中,你可以将这些代码包装成一个函数,使得邮件发送更为灵活和易用。

如果你需要发送附件或者使用 HTML 格式的邮件,可以进一步查阅 Python 的 emailsmtplib 文档。希望这篇文章能对你的学习有所帮助,祝你编程愉快!