【python实用小脚本-125】基于 Python 的 Gmail 邮件发送工具:实现高效邮件自动化

发布于:2025-07-07 ⋅ 阅读:(24) ⋅ 点赞:(0)

引言

在现代办公和开发环境中,邮件通信是一种重要的沟通方式。自动化发送邮件可以大大提高工作效率,例如发送通知、报告或文件。本文将介绍一个基于 Python 的 Gmail 邮件发送工具,它能够通过 Gmail 的 SMTP 服务器发送邮件,并支持附件功能。该工具主要利用了 Python 的 smtplib 库和 email 库,结合了邮件构建和网络通信技术,为用户提供了一个简单易用的邮件发送解决方案。

总体功能概述

Gmail 邮件发送工具是一个 Python 类库,其核心功能是通过 Gmail 的 SMTP 服务器发送邮件,并支持附件功能。它通过调用 smtplib 库来建立 SMTP 连接,并利用 email 库来构建邮件内容。工具的主要功能包括邮件构建、附件添加和邮件发送。

邮件构建功能

邮件构建功能是工具的核心部分,它负责创建邮件的各个组成部分,包括发件人、收件人、主题、正文和附件。以下是邮件构建功能的代码片段及解析:

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import os

def create_message(self, to_email, subject, body, attachments=None):
    message = MIMEMultipart()
    message["From"] = self.sender_email
    message["To"] = to_email
    message["Subject"] = subject
    message.attach(MIMEText(body, "plain"))
    if attachments:
        for file_path in attachments:
            if os.path.exists(file_path):
                with open(file_path, "rb") as file:
                    attachment = MIMEApplication(file.read(), _subtype="txt")
                    attachment.add_header(
                        "Content-Disposition",
                        "attachment",
                        filename=os.path.basename(file_path)
                    )
                    message.attach(attachment)

    return message

在上述代码中,MIMEMultipart 用于创建一个多部分邮件对象,MIMEText 用于添加邮件正文,MIMEApplication 用于添加附件。邮件的发件人、收件人和主题通过设置邮件头字段来指定。如果提供了附件路径列表,工具会遍历这些路径,检查文件是否存在,并将每个附件添加到邮件中。最终,构建好的邮件对象被返回,以便后续发送。

邮件发送功能

邮件发送功能负责通过 Gmail 的 SMTP 服务器发送构建好的邮件。以下是邮件发送功能的代码片段及解析:

import smtplib

def send_email(self, to_email, subject, body, attachments=None):
    try:
        message = self.create_message(to_email, subject, body, attachments)
        with smtplib.SMTP(self.smtp_server, self.smtp_port) as server:
            server.starttls()
            server.login(self.sender_email, self.app_password)
            server.send_message(message)

        print(f"Email sent successfully to {to_email}")
        return True

    except Exception as e:
        print(f"Error sending email: {str(e)}")
        return False

在上述代码中,smtplib.SMTP 用于建立与 Gmail SMTP 服务器的连接。starttls 方法用于启用 TLS 加密,确保邮件传输的安全性。login 方法用于使用发件人的邮箱地址和应用密码登录到 Gmail 服务器。send_message 方法用于发送构建好的邮件对象。如果邮件发送成功,工具会打印成功消息;如果发送过程中发生错误,工具会捕获异常并打印错误信息。

Gmail SMTP 配置

为了使用 Gmail 的 SMTP 服务器发送邮件,需要正确配置 SMTP 服务器地址和端口。以下是 Gmail SMTP 配置的代码片段及解析:

class GmailSender:
    def __init__(self, sender_email, app_password):
        self.sender_email = sender_email
        self.app_password = app_password
        self.smtp_server = "smtp.gmail.com"
        self.smtp_port = 587

在上述代码中,GmailSender 类的构造函数接收发件人的邮箱地址和应用密码,并设置 Gmail SMTP 服务器的地址和端口。smtp.gmail.com 是 Gmail 的 SMTP 服务器地址,587 是用于 TLS 加密的端口号。这些配置信息是发送邮件所必需的,确保工具能够正确连接到 Gmail 服务器。

总结

本文介绍了一个基于 Python 的 Gmail 邮件发送工具,它通过结合 smtplib 库的网络通信功能和 email 库的邮件构建功能,实现了通过 Gmail SMTP 服务器发送邮件的功能,并支持附件功能。该工具具有简单易用、功能实用的特点,适用于需要自动化发送邮件的各种场景。通过本文的介绍,读者可以了解到如何利用 Python 相关技术栈实现邮件发送工具的开发,为邮件自动化和通知系统提供了有益的参考。

源码获取

完整代码已开源,包含详细的注释文档:
🔗 [GitCode仓库] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [备用下载] https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG


网站公告

今日签到

点亮在社区的每一天
去签到