Mutt(NeoMutt)中message-hook结合sed/tac的语法问题求助
解决Mutt/NeoMutt针对特定发件人的邮件过滤或MIME类型修正问题
方案一:通过message-hook对特定发件人应用自定义过滤命令
你之前配置后邮件显示空白,核心原因是引号嵌套的语法错误。正确的配置需要对命令中的单引号进行转义,确保Mutt能正确解析过滤链:
message-hook '~f email@school.org' 'set display_filter="tac | sed '\''s/<[^>]*>/<>/g'\'' | tac"'
~f email@school.org是匹配指定发件人邮箱的规则- 外层用双引号包裹整个过滤命令,sed内部的单引号通过
\'转义,避免与Mutt的hook语法冲突 - 配置生效后,仅该发件人的邮件会应用此过滤逻辑,不会破坏全局邮件的地址显示
方案二:强制将特定发件人的纯文本邮件识别为HTML类型
相比自定义过滤,直接修正MIME类型更可靠,能让Lynx直接解析邮件中的HTML内容。配置如下:
message-hook '~f email@school.org' 'mime_type text/plain text/html'
这条命令会把来自email@school.org、标记为text/plain的邮件,强制识别为text/html类型,Lynx即可正常解析其中的HTML结构,无需额外处理。
注意事项
- 配置完成后,重启NeoMutt或在命令行执行
:source ~/.muttrc重新加载配置 - 若需模糊匹配该域名下的所有发件人,可将规则改为
~f @school.org
内容的提问来源于stack exchange,提问作者Stax-overflowed
相关产品推荐
相关产品推荐

