Python使用smtplib发送电子邮件完整指南

Dylan
Dylan
发布时间:2026-10-13| 4人浏览过
原创

本文详解Python中smtplib模块的使用,涵盖SMTP服务器连接、登录认证及邮件构建流程。通过具体代码示例,展示如何配置主机、端口及本地主机名,并实现包含附件的复杂邮件发送功能,帮助开发者快速掌握Python自动化发邮件技巧。

SMTP协议与smtplib模块简介

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它定义了一套从源地址向目的地址传送邮件的规则,并控制信件的中转方式。

Python中的smtplib模块提供了一种便捷的途径来发送电子邮件,该模块对SMTP协议进行了简单的封装。

SMTP对象创建与参数配置

在Python中创建SMTP对象的语法如下所示:

import smtplib

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

相关参数说明如下:

  • host:指定SMTP服务器的主机地址,可以是IP地址或域名(例如runoob.com),此参数为可选。
  • port:若提供了host参数,则需指定SMTP服务使用的端口号,通常SMTP端口号为25。
  • local_hostname:若SMTP服务器运行在本机,只需将服务器地址指定为localhost即可。

Python发送邮件代码实现

具体实现代码如下:


#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020/5/20 17:24
Wechat:15367499889
Company:上海多测师信息有限公司
===========================
"""

import os
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from common.handleconfig import conf


def send_email(filename, title):
  """
  发送邮件的功能函数
  :param filename: 文件的路径
  :param title:  邮件的主题
  :return:
  """
  # 第一步:连接邮箱的smtp服务器,并登录
  smtp = smtplib.SMTP_SSL(host=conf.get("email", "host"), port=conf.getint("email", "port"))
  smtp.login(user=conf.get("email", "user"), password=conf.get("email", "pwd"))

  # 第二步:构建一封邮件
  # 创建一封多组件的邮件
  msg = MIMEMultipart()

  with open(filename, "rb") as f:
    content = f.read()
  # 创建邮件文本内容
  text_msg = MIMEText(content, _subtype="html", _charset="utf8")
  # 添加到多组件的邮件中
  msg.attach(text_msg)
  # 创建邮件的附件
  report_file = MIMEApplication(content)
  report_file.add_header('content-disposition', 'attachment', filename=os.path.split(filename)[-1])
  # 将附件添加到多组件的邮件中
  msg.attach(report_file)

  # 主题
  msg["Subject"] = title
  # 发件人
  msg["From"] = conf.get("email", "from_addr")
  # 收件人
  msg["To"] = conf.get("email", "to_addr")

  # 第三步:发送邮箱
  smtp.send_message(msg, from_addr=conf.get("email", "from_addr"), to_addrs=conf.get("email", "to_addr"))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。