我想复制 GMail 的“过滤此类邮件”功能。基本上,我希望在 mutt 中绑定一个键,例如 *,并且可以将显示的消息“限制”到由同一发件人(或以 ; 为前缀的发件人)发送的消息
macro index * "<enter-command>set sender=display-address<enter><limit>$sender<enter>" "Filter Messages Like"
Run Code Online (Sandbox Code Playgroud)
我正在尝试上面的宏方法,但是很难将发件人地址读入 mutt 中的变量。宏是去这里的正确方法吗?将消息头读入变量的正确方法是什么?
不幸的是,不可能从函数填充变量。即使您能够调用 function <display-address> :push @,:exec display-address或者在 neomutt \xe2\x80\x93 中使用 lua ,它也会显示在底部栏中,但变量仍为空。
今天在 #neomutt IRC 上咨询此问题后,目前最好的选择是使用临时文件。
\n\nfrom header,将其传递给 awk 以仅获取电子邮件地址并将输出重定向到 /tmp/sendermacro index,pager * \\\n"<pipe-message>formail -X from:|awk -F\'[<>]\' \'{print $2}\'>/tmp/sender<enter>\\\n:set my_sender=\\"`cat /tmp/sender`\\"\\n\\\nl~f \\"$my_sender\\"\\n" \\\n"Filter Messages Like"\nRun Code Online (Sandbox Code Playgroud)\n\n要求: 邮件
\n\n或者您可以使用任何其他命令来解析消息中的电子邮件地址。
\n\n编辑:每个 neomutt 会话仅工作一次。宏内部的变量扩展可能存在问题,因为它用双引号引起来,并且必须如此。所以这仍然可能是不可能的,至少是不可能的。
\n