问题标签 [sieve-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - Sieve 脚本中的正则表达式捕获组
我想将转发到我的主邮箱(来自另一个域)的电子邮件放入特定的子文件夹中。例如:foo@bar
去INBOX/bar/foo
。
捕获组没有被替换INBOX/${2}/${1}
,为什么?
dovecot - 如何用变量中的另一个字符替换一个字符
我想知道是否有办法用变量中的另一个字符替换一个字符。例如,用下划线替换字符串变量中的每个点。
sieve-language - Sieve 将邮件随机分配到文件夹
我正在使用如下筛选规则对普通邮件中的日志进行排序:
nagios@mail.com
现在,如果从to发送一些邮件my@mail.com
,可能会出现以下两种结果:
我的问题是邮件将被随机分类为asdf
or asdf.logs
。我该如何解决这个问题?
thunderbird - 筛选 addflag "$label1" 在 Thunderbird 中不显示
我正在用筛子过滤我的邮件。我想标记某些消息,以便它们显示在 Thunderbird 中并带有相应的标签。
这些示例表明,在语句中require "imap4flags";
后跟 anaddflag "$label1";
应该分配第一个标签,这是在 Thunderbird 中定义的——不幸的是,在我的情况下不是这样。
知道这里出了什么问题吗?其他一切都像魅力一样工作。
编辑
最小、完整和可验证的示例:
帐户的筛子脚本如下所示:
我有一个单独定义的标签“Wichtig”:
我从 flagtest@domain1.tld 向 account@domain2.tld 发送了一封电子邮件。电子邮件已归档到文件夹“IT”中。该电子邮件未标记为“Wichtig”。
此行为已使用 Dovecot 2.2.22 进行了测试。
email - 使用 Sieve 将日期标题添加到传入的电子邮件
我正在寻找一种方法在 Sieve 中做一些我多年来在 Procmail 中一直在做的事情,即在传入的消息中插入一个明确的日期标题,这让我很清楚 - 独立于埋藏的“收到”标题可能有多个服务器,但是我的邮件客户端会解释消息的发送日期——我的服务器收到消息的时间。这就是我在 Procmail 中的做法:
我发现“addheader”(RFC 5293)显然会添加一个标题,但由于我读过的其他内容(对不起,不记得在哪里)我相信 Sieve 不会在 shell 中运行“date”命令由于限制或出于安全原因不运行 shell 命令的预期(和可理解的)偏好。
其他可能有用的信息:我正在通过 Roundcube 1.3.6 执行此操作,但我有一种感觉(也是由于我阅读的内容),如果我在 Roundcube 中编辑原始代码,Roundcube 可能会覆盖自定义筛选器集。如有必要,我很乐意直接在服务器上编辑或创建 Sieve 配置文件,以便为服务器上的所有用户实现这一点,但多年来我一直运行 Sendmail 和 Procmail,我不确定执行此操作的最佳位置。
编辑:
作为 Roundcube 中的一个测试,我在我的 Sieve 过滤器组的顶部添加了这个:
我实际上并没有添加行“require [”fileinto“”editheader“];”; 我刚刚在过滤器集顶部的现有行中添加了“editheader”,如下所示:
我希望这会增加...
...对于每条传入的消息,但 Roundcube 不会让我保存它:
搜索此错误会返回一个相关结果,但未发布解决方案。
但是,我不打算专注于 Roundcube。就像我之前说的,如有必要,我将从命令行添加这个 Sieve 过滤器。
dovecot - Dovecot Sieve 和:用于执行的输出变量
我正在尝试让吹筛过滤器工作
extprogram在哪里user-verification
调用 API 并根据电子邮件地址验证用户,然后返回布尔值(作为控制台的输出)。
if string :matches "${valid_user}" "True"
当我以其他看起来无法识别valid_user
变量的方式删除语句时,一切正常。
当我通过管道valid_user
传输到某个脚本只是为了捕获该变量的值时,它会引发错误:
错误:指定:args 项目“真?” 是无效的。
为什么在这种情况下将问号添加到变量中?
想法?
dovecot - Dovecot Sieve - 如何检索部分消息作为变量
我需要检索消息的某些部分,看起来像
例如,我需要获取之后的内容Final-Recipient: rfc822;
并将Original-Message-ID:
它们存储为变量
我试图做类似的事情
但是设置为的变量Original-Message-ID
不包含消息中的内容。
path - 无法统计筛子存储路径:废话路径
我有一个安装了 postfix 和 dovecot 的邮件服务器。Postfix 被配置为使用 dovecot 的 lmtp 服务以应用一些 sieve 脚本。
到目前为止,这似乎有效。但是,当我的服务器收到发给 ilka 帐户的邮件(与所有其他帐户相同)时,我在 mail.log 中收到了这个神秘的错误:
在 dovecot 的conf.d/90-sieve.conf我实际上声明
那么 dovecot 是如何想出这个包含两个斜杠的奇怪(且无效)文件路径的呢?我敢肯定,我一定是做了一些非常愚蠢的错误配置,但我不知道在哪里......
感谢您的帮助!
问候, 伊尔卡
html-email - 格式化 Sieve 脚本以包含带有 HTML 的 MIME 的正确方法是什么?
我正在尝试使用 Dovecot Sieve 在服务器上实现自动回复。我已经设法使用简单的 html 生成筛选脚本,但是,当尝试实现更复杂的 html 时,我收到了语法错误。
如何制定筛子脚本以允许更复杂的 html?如何修复语法错误?
:mime 参数应该用引号括起来,我猜这就是它的中断之处。但是我尝试搜索有关如何正确编码脚本的指导,但我找不到任何指导。
例如,此代码有效...
但这并不...
错误消息是
regex - 来自“已接收”电子邮件标题的正则表达式匹配时间
我正在尝试匹配标题以设置在圆形立方体上的过滤器中。我发现了另一个关于此的问题,我尝试了答案,但它不起作用。
正则表达式在 RegExr 中测试时有效,但 roundcube 只是拒绝保存它。
这是我的正则表达式:\s*(?:Sun|Mon|Tue|Weds|Thu|Fri|Sat),\s*\d+\s+\w+\s+\d+\s+(?:0[12345678]|1[89]|2[0123]):\d\d:\d\d
我在这个答案中找到的,根据我的需要进行了调整:RegEx to match time in "Received: by" e-mail header
它应该在: 之间匹配时间18:00 - 09:00
,它确实如此。
我不是正则表达式专家,所以有没有人可以帮助我解决这个问题?