电子邮件前导解析器
解析转发电子邮件并提取原始内容 .
这个库支持大多数常见的电子邮件客户端和地盘.
动机
最初的项目来自 冰冻 电子邮件复制解析器 依赖 可再生能源2 库,并非所有平台,即一些无服务器和浏览器环境都可以使用。 这个叉子是同一个库的纯粹的javascript执行.
特征
- 支持客户端:苹果邮件,Gmail,Outlook Live / 365,Outlook 2013,Outlook 2019,New Outlook 2019,Yahoo Mail,雷鸟,Missive,HubSpot,IONOS by 1 & 1
- 支助的当地人:克罗地亚、捷克、丹麦、荷兰、英语、法语、芬兰语、德语、匈牙利语、意大利语、日语、挪威语、波兰语、葡萄牙语(巴西)、葡萄牙语、罗马尼亚语、俄语、斯洛伐克语、西班牙语、瑞典语、土耳其语、乌克兰语
使用量
const EmailForwardParser = require("email-forward-parser");
const result = new EmailForwardParser().read(MY_EMAIL_STRING);
console.log(result.forwarded);
// true
API 密码
分析转发的电子邮件
read(body, subject) 检查电子邮件是否转发,并描述其原始内容(从、向、Cc、主题、日期和正文):
body必须是代表电子邮件正文的字符串( 由 邮箱(例如)subject必须是代表电子邮件主题的字符串。 此参数是可选的,但建议改进对一些电子邮件客户端的检测(特别是"2019年新展望")
const EmailForwardParser = require("email-forward-parser");
const result = new EmailForwardParser().read(MY_EMAIL_STRING, MY_SUBJECT_STRING);
console.log(result);
// {
// forwarded: true,
//
// message: "Praesent suscipit egestas hendrerit.",
//
// email: {
// body: "Aenean quis diam urna.",
//
// from: {
// address: "[email protected]",
// name: "John Doe"
// },
// to: [{
// address: "[email protected]",
// name: "Bessie Berry"
// }],
// cc: [{
// address: "[email protected]",
// name: "Walter Sheltan"
// }],
//
// subject: "Integer consequat non purus",
// date: "25 October 2021 at 11:17:21 EEST"
// }
// }
怎么会这样?
电子邮件转发(即您通过点击您的电子邮件客户端中的"Forward"按钮手动转发电子邮件副本时)不被任何 RFC 规范. 意思是电子邮件客户端可以随意格式化转发的电子邮件 .
没有神奇的子弹可以处理这种差距。 唯一可行的办法是依靠 正则表达式 (a lot!),以说明每个电子邮件客户端的特殊性:
| 客户端 | 通过主体可探测 | 通过分隔器可探测 | 主题本地化 | 本地分隔符 | 所有原始资料 | 本地化原始资料 | 其他特殊性 |
|---|---|---|---|---|---|---|---|
| 苹果邮件 | 对 | 对 | 对 | 对 | 对 | 对 | - 说吧 |
| 邮件 | 对 | 对 | 没有 | 没有 | 对 | 仅部分 | - 说吧 |
| 展望实况 365 | 对 | 对 | 对 | 没有 | 对 | 没有 | - 说吧 |
| 2013年展望 | 对 | 没有 | ? 吗? | - 说吧 | ? 吗? | ? 吗? | - 说吧 |
| 2019年展望 | 对 | 对 | 没有 | 对 | 没有 | 对 | 从和日期部分(只有原始信息)嵌入到分隔符中,而不是正体本身 |
| 2019年新展望 | 对 | 没有 | 对 | - 说吧 | 对 | 对 | - 说吧 |
| 雅虎邮件 | 对 | 对 | 没有 | 对 | 对 | 对 | 原始信息都粘在一起,没有换行 |
| 雷鸟 | 对 | 对 | 没有 | 对 | 对 | 对 | - 说吧 |
| 错过 | 对 | 对 | 没有 | 没有 | 对 | 没有 | - 说吧 |
| 枢纽点 | 对 | 对 | 对 | 对 | 对 | 对 | - 说吧 |
| IONOS by 1 & 1 | ? 吗? | 对 | ? 吗? | ? 吗? | 对 | ? 吗? | - 说吧 |
捐款
随意将这个项目叉出并提交修正. 我们可以调整你的代码 以适应代码库.
您可以使用 :
npm test
许可证
以麻省理工学院的许可发布电子邮件前置parser。 详情见捆绑的LICENSE文件.