项目缘由
如果12306的账户绑定了邮箱,每次买票后都会收到一封「网上购票系统-用户支付通知」的邮件。如果不删邮件,那么邮箱里将会保留着你所有的订票记录。注意:这些历史数据,登录12306平台都找不到。

我平常有收集整理的「癖好」,这些邮件都统一归档到了一个文件夹。每次翻看这些邮件,都会觉得回忆满满,但是一封封查看很不方便,一直在思考有没有什么方法可以更好的查看。
最近,借助AI编码的能力,我显示了这个想法。
项目名称:我的火车票-MyTrainTickets
项目简介:利用程序脚本获取邮箱里12306发送的订票支付通知邮件,从邮件中提取票务信息,继续将文本形式的票务信息进行数据结构化整理和清洗,最后输出到一个网页里,以相册的形式呈现找到的车票。
效果呈现

功能实现和不足之处
- 可以配置IMAP账号信息,让程序登录邮箱去抓取邮件。也可以手动下载邮件为eml文件后,从这些文件中读取。
- 如果有退票和改签的情况,也会以水印的方式在票面上进行标注。
- 支持白名单或黑名单的筛选,只呈现某些人的车票,或不呈现某些人的车票。黑名单功能,我觉得是本项目的亮点,请自行体会。
- 可以配置是不是对姓名进行脱敏,脱敏后在票面上的姓名会打码。
- 使用HTML模拟还原来车票的样式,并且普速列车使用了红色车票样式,高铁动车使用了蓝色车票样式,这里的区分不是特别严谨。
- 页面上可以按年份、姓名、状态来进行筛选。
实现原理
- 这个项目可以走通,主要还是依赖于此类邮件内容的规范化。

- 比如,我们观察上面这个邮件内容,可以发现核心信息分别是姓名、开车时间、起止站点、车次、座位号、席别、类型、价格、检票口等,并且都是以逗号分割,非常易于切割。
- 这个邮件格式有次大的改版,早期的票务信息上,没有开车时间的年份,分割也用是英文逗号,并且有些备注信息。但是无伤大雅,兼容处理起来也很简单。

如何使用
我已经把本项目制作为了一个Skill技能。你在常用AI工具里安装这个Skill之后,让AI一步步引导你完成配置,即可生成自己的「车票相册」。
Github地址:https://github.com/Ya-chunJen/MyTrainTickets
Gitee地址:https://gitee.com/renyajun1990/MyTrainTickets
总结
如果你对本项目感兴趣,欢迎和我联系交流。
