You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Procmail中设置变量为收件人邮箱地址

解决Procmail提取收件人邮箱地址的问题

原命令TO_=formail -XTo:``会输出完整的To头行(包括字段名和姓名信息),所以无法直接得到纯邮箱地址。你可以通过以下两种方式修改脚本,提取出符合预期的邮箱地址:

方法一:用formail二次解析

利用formail的参数先提取To字段的值,再反向解析出标准邮箱地址:

TO_=`formail -x To: | formail -rt -X To:`
  • formail -x To: 会去除字段名To:,只保留后面的地址内容(比如firstName lastName <address@domain.com>)
  • formail -rt -X To: 会对提取到的内容进行反向解析,自动提取出<>包裹的纯邮箱地址;如果To字段本身就是纯邮箱(无姓名),也会直接输出该地址。

方法二:用sed精准匹配提取

如果需要更灵活的处理逻辑,可结合sed正则提取邮箱:

TO_=`formail -x To: | sed -n 's/.*<\([^>]*\)>.*/\1/p; s/^[[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p'`

这个命令会处理两种常见场景:

  1. 匹配<>包裹的邮箱地址(如firstName lastName <address@domain.com>),提取出address@domain.com
  2. 处理无姓名的纯邮箱格式(如address@domain.com),直接提取邮箱本身

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:39:21