讲师中心 微信公众号
AI工具推荐 视频效率加速

全功能邮件管理助手

Polar Sponsor
爱发电 赞助
.NET 9.0

全功能邮件管理助手,支持发送(HTML样式+附件+内嵌图片)、接收、搜索、查看、删除、标记、移动邮件。覆盖市面上所有主流邮箱平台(163、QQ、126、Sina、Aliyun、139、189、Gmail、Outlook、Yahoo、iCloud、Zoho 等)。使用 Python 标准库(smtplib + imaplib),无需安装第三方依赖。触发词:发邮件、收邮件、查邮件、删邮件、邮件管理、邮箱、SMTP、IMAP、发送附件、HTML邮件、邮件搜索。

Email Master — 全功能邮件管理技能

功能概述

Email Master — 全功能邮件管理技能是一项面向实际任务的技能,主要用于本技能使用 Python 标准库( smtplib + imaplib )实现完整的邮件收发管理, 无需安装第三方依赖;支持功能:;

核心要点

  • 发送 :纯文本/HTML正文(支持HTML文件路径)、多附件、内嵌图片、多收件人、抄送/密送、回复/转发邮件、高优先级;
  • 接收 :列出邮件列表、分页浏览、仅看未读;
  • 搜索 :按主题/发件人/收件人/日期/是否。

使用与执行

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Email Master — 全功能邮件管理技能

概述

本技能使用 Python 标准库(smtplib + imaplib)实现完整的邮件收发管理,无需安装第三方依赖。

支持功能:

  • 发送:纯文本/HTML正文(支持HTML文件路径)、多附件、内嵌图片、多收件人、抄送/密送、回复/转发邮件、高优先级
  • 接收:列出邮件列表、分页浏览、仅看未读
  • 搜索:按主题/发件人/收件人/日期/是否未读筛选
  • 查看:完整邮件内容(含正文、HTML、附件列表)、回复链信息、附件大小
  • 管理:删除(支持批量)、标记已读/未读/星标(支持批量)、移动文件夹
  • 下载:保存单个附件或全部附件到本地
  • 自动识别:根据邮箱地址自动匹配SMTP/IMAP配置

脚本说明

脚本 功能
scripts/send_email.py 邮件发送(SMTP,支持HTML+附件+回复/转发+重试)
scripts/mail_client.py 邮件接收与管理(IMAP,兼容163 Unsafe Login)
scripts/email_config.py 邮箱配置自动识别(根据邮箱地址匹配服务器配置)

Python 运行路径(优先使用):

C:Usersadmin.workbuddybinariespythonversions3.13.12python.exe

快速开始

第一步:自动识别邮箱配置

python scripts/email_config.py user@163.com
# 自动输出:SMTP服务器、IMAP服务器、端口、认证方式

第二步:确认授权码

大多数邮箱不支持账户密码,需生成授权码/应用密码:

  • 163/126:网页版 → 设置 → POP3/SMTP/IMAP → 开启 → 获取授权码
  • QQ:邮箱设置 → 账户 → 生成授权码
  • Gmail:Google账号 → 安全 → 两步验证 → 应用密码

第三步:发送或收取邮件

见下方详细用法。

邮箱配置参考

常用快查表(完整配置见 references/email_providers.md,也可用 email_config.py 自动查询):

邮箱 SMTP IMAP SSL端口 认证方式
163 smtp.163.com imap.163.com 465/993 授权码
QQ smtp.qq.com imap.qq.com 465/993 授权码
126 smtp.126.com imap.126.com 465/993 授权码
Gmail smtp.gmail.com imap.gmail.com 587/993 应用密码
Outlook smtp-mail.outlook.com imap-mail.outlook.com 587/993 应用密码
Yahoo smtp.mail.yahoo.com imap.mail.yahoo.com 465/993 应用密码
iCloud smtp.mail.me.com imap.mail.me.com 587/993 应用密码
Aliyun smtp.aliyun.com imap.aliyun.com 465/993 授权码
139 smtp.139.com imap.139.com 465/993 授权码
189 smtp.189.cn imap.189.cn 465/993 授权码

发送邮件

基本发送(纯文本)

python scripts/send_email.py 
  --host smtp.163.com --port 465 
  --user tnktechqa@163.com --password "授权码" 
  --to "收件人@example.com" 
  --subject "邮件主题" 
  --body "邮件正文内容"

发送 HTML 邮件

# 直接传入HTML字符串
python scripts/send_email.py 
  --host smtp.163.com --port 465 
  --user tnktechqa@163.com --password "授权码" 
  --to "收件人@example.com" 
  --subject "HTML邮件" 
  --html "

你好

这是一封 HTML 邮件。

" # 传入HTML文件路径(自动读取文件内容) python scripts/send_email.py --host smtp.163.com --port 465 --user tnktechqa@163.com --password "授权码" --to "收件人@example.com" --subject "月报" --html "/path/to/report.html"

发送带附件的邮件

python scripts/send_email.py 
  --host smtp.163.com --port 465 
  --user tnktechqa@163.com --password "授权码" 
  --to "收件人@example.com" 
  --subject "请查收报告" 
  --html "

请查收附件中的报告。

" --attach "/path/to/report.pdf" "/path/to/data.xlsx"

发送给多人并抄送

python scripts/send_email.py 
  --host smtp.163.com --port 465 
  --user tnktechqa@163.com --password "授权码" 
  --to "a@example.com,b@example.com" 
  --cc "boss@company.com" 
  --subject "通知" 
  --html "

内容

" --from-name "技术团队"

回复邮件

# 传入原始邮件的 Message-ID(查看邮件详情时获取)
python scripts/send_email.py 
  --host smtp.163.com --port 465 
  --user tnktechqa@163.com --password "授权码" 
  --to "sender@example.com" 
  --subject "Re: 原始主题" 
  --body "收到,谢谢!" 
  --reply-to ""

高优先级邮件

python scripts/send_email.py 
  --host smtp.163.com --port 465 
  --user tnktechqa@163.com --password "授权码" 
  --to "boss@company.com" 
  --subject "紧急通知" 
  --html "

紧急事项

" --priority high

作为模块调用

import sys
sys.path.insert(0, "C:/Users/admin/.workbuddy/skills/email-master/scripts")
from send_email import send_email

result = send_email(
    host="smtp.163.com",
    port=465,
    user="tnktechqa@163.com",
    password="授权码",
    to=["收件人@example.com"],
    subject="主题",
    html_body="

HTML内容

正文

", attachments=["/path/to/file.pdf"], from_name="发件人名称", reply_to_msgid="", priority="high", max_retries=2, ) print(result) # {"success": True, "message": "..."}

接收与管理邮件

163/126/Yeah 邮箱注意:首次使用 IMAP 可能触发「Unsafe Login」安全限制。 本脚本已内置 ID 命令绕过机制。若仍被拒绝,请登录网页版邮箱确认授权。 详见下方「常见问题」。

列出文件夹

python scripts/mail_client.py 
  --host imap.163.com --user tnktechqa@163.com --password "授权码" 
  folders

列出收件箱最新20封

python scripts/mail_client.py 
  --host imap.163.com --user tnktechqa@163.com --password "授权码" 
  list --limit 20

只看未读邮件

python scripts/mail_client.py ... list --unread

搜索邮件

# 按主题搜索
python scripts/mail_client.py ... search --subject "发票"

# 按发件人搜索
python scripts/mail_client.py ... search --from "hr@company.com"

# 按日期范围搜索(格式:DD-Mon-YYYY,如 01-May-2024)
python scripts/mail_client.py ... search --since "01-May-2024" --before "31-May-2024"

# 组合搜索
python scripts/mail_client.py ... search --subject "合同" --from "legal@firm.com" --unread

查看邮件详情

# 查看并自动标记已读
python scripts/mail_client.py ... view --uid 123

# 查看但不标记已读
python scripts/mail_client.py ... view --uid 123 --no-mark-read

删除邮件(支持批量)

# 删除单封
python scripts/mail_client.py ... delete --uid 123

# 批量删除
python scripts/mail_client.py ... delete --uid "123,456,789"

标记邮件状态(支持批量)

# 标记为已读
python scripts/mail_client.py ... mark --uid 123 --flag read

# 批量标记未读
python scripts/mail_client.py ... mark --uid "123,456" --flag unread

# 添加星标
python scripts/mail_client.py ... mark --uid 123 --flag flagged

移动邮件到文件夹

python scripts/mail_client.py ... move --uid 123 --dest "已处理"

下载附件

# 下载指定附件
python scripts/mail_client.py ... download --uid 123 --filename "report.pdf" --dir "/path/to/save"

# 下载全部附件
python scripts/mail_client.py ... download --uid 123 --dir "/path/to/save"

获取邮箱统计

python scripts/mail_client.py ... stats

JSON格式输出(便于程序处理)

python scripts/mail_client.py ... list --json
python scripts/mail_client.py ... view --uid 123 --json

作为模块调用

import sys
sys.path.insert(0, "C:/Users/admin/.workbuddy/skills/email-master/scripts")
from mail_client import MailClient

with MailClient("imap.163.com", 993, "tnktechqa@163.com", "授权码") as client:
    # 列出邮件
    emails = client.list_emails(limit=10)
    for e in emails:
        print(e["subject"], e["from"], e["date"])

    # 搜索
    results = client.search_emails(subject="发票", unread_only=True)

    # 查看详情
    mail = client.get_email("123", mark_read=False)
    print(mail["subject"], mail["message_id"])

    # 批量删除
    client.delete_email("123,456,789")

    # 下载全部附件
    saved = client.download_all_attachments("123", save_dir="./downloads")

邮箱配置自动识别

# 查询邮箱配置
python scripts/email_config.py user@163.com
python scripts/email_config.py someone@gmail.com --json

# 作为模块调用
from email_config import get_email_config
config = get_email_config("user@163.com")
print(config["smtp_host"], config["smtp_port"])
print(config["imap_host"], config["imap_port"])
print(config["auth_guide"])

支持的邮箱域名:163.com、126.com、yeah.net、qq.com、sina.com、sohu.com、aliyun.com、139.com、189.cn、21cn.com、gmail.com、outlook.com、hotmail.com、live.com、yahoo.com、icloud.com、me.com、zoho.com、fastmail.com、protonmail.com 等 30+ 域名。

常见问题处理

错误 原因 解决方案
Authentication failed 使用了账户密码而非授权码 在邮箱设置中生成授权码/应用密码
Connection refused 端口错误或服务未开启 检查端口,163/QQ需在网页端开启SMTP/IMAP
SSL error 端口与加密方式不匹配 465用SSL,587用STARTTLS
163 Unsafe Login 网易邮箱安全保护 登录163网页版 → 设置 → POP3/SMTP/IMAP → 确认授权/开启IMAP;本脚本已内置ID命令绕过机制
163发送失败 未开启SMTP服务 登录163网页 → 设置 → POP3/SMTP/IMAP → 开启
Gmail认证失败 未使用应用密码 Google账号 → 安全 → 两步验证 → 应用密码
SMTPServerDisconnected 网络不稳定 已内置重试机制(默认2次),可 --retries 3 增加重试
IMAP select失败 文件夹名错误 先用 folders 命令查看可用文件夹名

163邮箱「Unsafe Login」详细解决步骤

  1. 登录 https://mail.163.com
  2. 点击右上角「设置」→「POP3/SMTP/IMAP」
  3. 确认 IMAP 服务已开启(如果未开启,点击开启并获取授权码)
  4. 如果有「安全登录」提示弹窗,点击确认授权
  5. 本脚本已内置 ID 命令自动发送客户端标识,可绕过大部分 Unsafe Login 检测
  6. 如仍然失败,可能需要在网页版中先手动收取/发送一封邮件激活账户

参考资料

  • 完整服务器配置表:references/email_providers.md
  • 邮箱自动识别:scripts/email_config.py <邮箱地址>
  • 发送脚本详细参数:scripts/send_email.py --help
  • 接收脚本详细参数:scripts/mail_client.py --help
目录

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

0

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

0

2026.10.22

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

0

2026.10.22

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

0

2026.10.22

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn