You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Gmail中获取显示表情符号实体代码(非象形图)的原始邮件文本及实现表情符号过滤?

我来一步步帮你解决这几个问题:

1. 在Gmail中直接查看原始邮件文本(含emoji/Goomoji的传输格式)

完全可以!Gmail自带查看原始邮件的功能,这正是你需要的SMTP传输/审核阶段的原始内容:

  • 打开目标邮件,点击右上角的三个点图标(更多选项)
  • 选择「显示原始内容」
  • 在打开的页面里,你会看到完整的MIME结构、邮件头,以及编码后的邮件正文——这里能看到emoji对应的Unicode字符(如果是UTF-8传输),或者quoted-printable/base64编码形式(比如=E2=9C=94对应✅),Goomoji的文本代码(比如:smile:)也会原封不动保留,不会被转换成象形图。

2. 用CLI工具解码下载的EML文件

如果已经下载了EML格式的邮件,用CLI工具解码非常方便,推荐几个实用工具:

  • munpack(属于mime-utils包,大部分Linux发行版可通过包管理器安装):
    提取邮件的纯文本内容,保留原始编码:
    munpack -t your_email.eml > raw_body.txt
    
  • ripmime:专门提取MIME邮件的各个部分,适合复杂邮件:
    ripmime -i your_email.eml -d email_contents
    
    执行后会在email_contents目录里生成纯文本、HTML等部分的文件,直接查看即可看到原始编码的内容。
  • 解码quoted-printable编码:如果正文是QP编码,用qp工具(apt install qp)解码:
    qp -d < encoded_body.txt > decoded_body.txt
    

3. 修复SpamZero实现Goomoji/表情过滤

SpamZero这类旧工具失效,通常是环境依赖、API权限或表情编码逻辑过时导致的,修复思路如下:

第一步:适配运行环境

  • 检查工具的package.json,升级Node.js到当前LTS版本(比如18.x或20.x),更新依赖包(比如googleapis如果用到Gmail API),解决版本兼容问题。

第二步:修复Gmail API权限(如果工具依赖API)

  • 重新在Google Cloud Console配置OAuth2凭据,确保权限范围包含https://www.googleapis.com/auth/gmail.modify(用于修改邮件状态,比如标记垃圾),并更新工具里的凭据配置。

第三步:更新表情过滤逻辑

  • 获取原始文本:从Gmail API的raw字段(解码后)或EML解码后的文本中获取邮件正文,避免Gmail渲染后的内容。
  • 识别Goomoji和emoji
    • Goomoji:用正则匹配文本格式,比如/:[a-zA-Z0-9_]+:/g,可以扩展匹配更多自定义Goomoji规则;
    • Unicode emoji:用覆盖最新emoji范围的正则,比如:
      const emojiRegex = /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/gu;
      
  • 添加过滤规则:比如匹配到指定表情后,调用Gmail API标记为垃圾邮件、归档或删除,或者直接拦截(如果是在接收阶段处理)。

第四步:测试与调试

  • 用包含不同表情/Goomoji的测试邮件验证逻辑,添加日志输出,排查编码处理或API调用的错误。

内容的提问来源于stack exchange,提问作者Jeff R

火山引擎 最新活动