Email 自动化:收发邮件与附件
认证里最爱考"两条路线"的区别——先分清,再动手。
学习目标
- 说清"邮件客户端方式"和"邮件协议方式"各自的前提与取舍
- 用 SMTP 一条命令发邮件(含附件),并填对服务器、端口、SSL
- 用 POP 三步收邮件:连接邮箱 → 获取邮件列表 → 下载附件/删除
- 解释为什么登录密码要填"授权码",而不是邮箱原密码
- 分清 SMTP / POP3 / IMAP 三者的分工与常用端口
预计用时:读课 35 分钟 + 上机 40 分钟 | 前置知识:第 6 课(字典、变量)、第 7~8 课(软件自动化四步思路) | 本课性质:网络自动化操作课,概念密集(两条路线、三类协议),认证选择题的高频区
知识地图
前两课操作的是本机软件(Excel、Word),本课第一次让机器人连上外面的世界。第 10 课的网页自动化会继续这条"联网"线。理解本课的关键,是先分清两条完全不同的技术路线,再把三类协议的分工和端口记牢。
一、两条路线,先选边
为什么会有两条路?因为"发邮件"这件事有两个观察角度。客户端方式相当于"我打开 Outlook,像人一样点发送"——机器人操作的是已经替你连好邮箱的软件;协议方式相当于"我直接跟邮件服务器对话"——机器人自己说邮件协议这门语言。前者省配置但依赖本机软件,后者省软件但配置啰嗦。选哪条,看你的运行环境:装了 Outlook 就用前者,服务器上啥都没有就用后者。
1.1 客户端方式(Outlook / IBM Notes)
| 命令 | 作用 |
|---|---|
| 发送邮件 | 按 Outlook 习惯填收件人、标题、正文、附件 |
| 获取邮件列表 | 收邮件,邮件数量填 0 表示收全部 |
| 回复邮件 / 下载附件 / 移动邮件 / 删除邮件 | 与人工操作习惯基本一致 |
两个前提/限制(考点):填"发件人邮箱"时,该地址必须事先在 Outlook 里绑定好(可绑多个);Outlook 自动化主要适配 2010/2013/2016/2019。IBM Notes 不需要填发件人邮箱,但每条命令都要配密码模式,适配 9.0.1 / 11.1。[1]
易错点:客户端方式不是"装了 Outlook 就能用"。发件人地址若没在 Outlook 里绑定,发送会失败;换一台没装客户端、或版本不在适配列表里的电脑,整条流程都跑不起来。这也是它"简单但不通用"的原因。
二、协议方式:发邮件用 SMTP
路径:命令区 ▸ 网络 ▸ SMTP/POP ▸ 发送邮件。一条命令就能发。
SMTP 的全称是 Simple Mail Transfer Protocol(简单邮件传输协议)。类比一下:它就像邮局的寄件窗口——你只管把信递进去、写好收件地址,剩下的投递由它负责。所以发邮件认准 SMTP。
| 属性 | 以 QQ 邮箱为例 |
|---|---|
| SMTP服务器 | smtp.qq.com |
| 服务器端口 / SSL加密 | 465 / 是 |
| 邮箱帐号 | 你的邮箱账号 |
| 登录密码 | 授权码(不是邮箱原密码!) |
| 收信邮箱 / 邮件标题 / 邮件正文 / 邮件附件 | 按需填写 |
| 输出到 | 成功 True,失败 False |
2.1 授权码:机器人登录的专用钥匙
授权码是邮箱服务商在你开启 POP3/SMTP 服务时生成的一串专用密码。它和你的登录密码是两回事: 登录密码能改设置、能登录网页;授权码只用于第三方软件收发邮件,权限被限制在收发范围内。 万一泄露,改授权码即可,不影响你正常登录邮箱。
必须提前做的一步:去邮箱设置里开启 POP3/SMTP 服务,系统会生成一串授权码(只显示一次),机器人登录就用这串码。[2]
易错点(端口 / 授权码):两类报错最常见——① 密码处填了邮箱原密码,认证直接被拒;② 端口或 SSL 填错(例如 465 配成了"SSL 否"),连接超时。另外授权码只显示一次,页面关掉就找不回,只能重新生成。建议拿到后立刻存进密码管理器,别只截图发在聊天里。
安全习惯:把授权码写进变量再传给命令,而不是硬写在流程里。流程文件可能被分享、上传、备份——凭据一旦写死,就等于把钥匙一起交出去了。这也是第 9 课和后续项目一直要坚持的习惯。
三、协议方式:收邮件用 POP
收邮件一条命令不够,要三步配合。先记住 POP3 的角色:它像邮局的取件窗口,专门负责把服务器上的信取下来。发信认 SMTP,收信认 POP3。
① 连接邮箱 → 输出到 objMail(邮箱对象)
服务器 pop.qq.com / 端口 995 / SSL 是 / 使用协议 POP3
② 获取邮件列表 → 操作对象 objMail,邮件数量 10(0=全部)
输出到的是字典,每封邮件是一个"邮件对象"
③ 下载附件 / 删除邮件 → 需要"邮箱对象 + 某个邮件对象"
邮件对象是字典,包含标题、正文、附件、发送人、日期、大小等字段——又是第 6 课字典的应用。[2]
3.1 三步分别拿到什么
- 连接邮箱:填服务器地址、端口、SSL、使用协议(POP3),输出到一个邮箱对象(如
objMail)。这一步相当于"走到取件窗口前、报上身份"。
预期:连接成功才继续;失败通常是授权码或服务没开。 - 获取邮件列表:操作对象填上一步的邮箱对象,邮件数量填具体数或 0(全部),输出到一个字典/列表,里面每封邮件是一个"邮件对象"。
预期:能读出数量,并打印出某封邮件的字段看看结构。 - 下载附件 / 删除邮件:都要同时给出"邮箱对象 + 某个邮件对象"——机器人需要知道"在哪封信上操作"。下载附件要填保存目录。
预期:附件落到指定目录。
一个易错点(删除不生效):用 POP 删除邮件后,必须再调用 断开邮箱连接 命令,删除才会真正生效。若服务器设置了"禁止收信软件删除邮件",则依然删不掉。[2]
易错点:很多人以为"调了删除邮件,服务器上就没了"。POP 的工作方式更像"先在本机标记、等你断开时才提交给服务器"。所以删完不断开=白删。另外邮件对象是字典,取字段时字段名拼错也会拿到空值——先打印整个字典看清结构,再取值。
3.2 顺带认识 IMAP
IMAP 比 POP 更现代:支持"仅限未读消息""标记为已读"、查找邮件、移动邮件、获取邮箱文件夹列表等。QQ 邮箱 IMAP 为 imap.qq.com / 端口 993。POP 没有"移动邮件"这个能力——这是两者的关键区别。
用生活类比:POP 像"把信全部取回家"(取走后服务器上可能就没了),IMAP 像"信留在邮局,你只是去阅览室里看和整理"(已读、分类、移动到别的文件夹都在服务器上完成)。所以需要在服务器上管理邮件、多设备同步时选 IMAP;只是简单下载内容时 POP 就够。
四、三种协议端口一览(记住常用的)
| 协议 | 用途 | 默认端口 | 常用 SSL 端口 |
|---|---|---|---|
| SMTP | 发邮件 | 25 | 465 |
| POP3 | 收邮件 | 110 | 995 |
| IMAP | 收/管理邮件 | 143 | 993 |
记忆口诀:"发 SMTP、收 POP3、管理 IMAP";加密端口都在 400 段往上:465 / 995 / 993。记不住时先想"哪个协议管什么",再记端口。
命令属性细节见 参考页:Email 命令速查。
本课小结
必记要点
- 两条路线:客户端方式(依赖 Outlook/IBM Notes,简单但依赖本机)与协议方式(SMTP/POP3/IMAP,不装客户端但配置较繁)。
- Outlook 需事先绑定发件人邮箱,适配 2010/2013/2016/2019;IBM Notes 不需发件人邮箱,但要配密码模式,适配 9.0.1 / 11.1。
- 发邮件用 SMTP,一条命令即可;登录密码填授权码,不是邮箱原密码。
- 收邮件用 POP3 三步:连接邮箱 → 获取邮件列表 → 下载附件/删除;邮件对象是字典。
- POP 删除后必须断开邮箱连接才生效;POP 没有"移动邮件"能力。
- 端口:SMTP 25/465,POP3 110/995,IMAP 143/993。
自测
不看上面,凭记忆作答。答错不要紧,解析会告诉你为什么。
上机实践(回到 Windows)
准备(先开通权限):拿一个自己的邮箱(建议先用 QQ 邮箱做实验)。登录网页版邮箱 → 进入设置 → 找到账户或POP3/IMAP/SMTP 服务一栏 → 开启 POP3/SMTP 服务(按提示用手机验证)→ 系统显示一串授权码。
注意:授权码只显示一次,务必先存好;若看丢了,回到同一页面重新生成即可。
任务 A(发信):用 发送邮件 给自己发一封"测试成功"邮件。SMTP 服务器 smtp.qq.com、端口 465、SSL 是、密码填授权码。看收到的邮件,并观察 输出到 的布尔值是否为 True。
任务 B(取列表):用 连接邮箱(POP)连上你的邮箱,再用 获取邮件列表 取 3 封,输出调试信息看看"邮件对象"字典里有哪些字段(标题、发送人、日期、大小……)。
任务 C(下附件):从列表里挑一封,用 下载附件 把附件存到 res 目录。如果这封没有附件,就先发一封带附件的给自己再收。
任务 D(收尾验证):挑一封垃圾邮件用 删除邮件,然后记得调用 断开邮箱连接,再刷新邮箱网页核对是否真的删掉了。这一步专治"删除不生效"。
任务 E(安全习惯):运行完把授权码从流程里删掉,改用一个变量传入。把你怎么做的告诉我——真实项目里,凭据绝不能硬写在流程里。
连不上、报错看不懂,把报错原文 + 你填的服务器/端口发我。
精读一手来源
本节首选:《开发者指南(第二辑)· 网络和系统操作 · 电子邮件协议》(SMTP/POP/IMAP 全流程 + QQ 邮箱配置截图)。 客户端方式看 《第一辑 · 软件自动化 · 邮件客户端自动化》。