AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[sieve](server)

Martin Hope
Heiner
Asked: 2023-02-28 00:48:59 +0800 CST

使用 from: not reply-to: 筛选假期

  • 5

Sieve vacation 答案很好,但使用 from: 字段而不是 reply-to: 字段,这对我来说更有意义。

使用带有 roundcube 的筛子,筛子脚本是

require ["vacation"];
# rule:[rep]
if header :contains "subject" "Software"
{
    vacation :subject "reply!!" "abc";
}

我如何提示筛选回答回复?

sieve
  • 2 个回答
  • 18 Views
Martin Hope
user3450564
Asked: 2021-09-22 04:04:41 +0800 CST

Dovecot 筛子连接 heqders

  • 0

设置

  • always_bccpostfix 通过,将所有邮件转发给 archive@domain 用户

  • 后缀将所有 RCPT TO 保存在X-Envelope-To标头中以保留密件抄送收件人,

  • X-Envelope-To出于隐私原因,用于 smtp 传输的postfix 删除,

  • postfix 通过lmtp.

  • dovecot 使用一个筛子脚本来刷新X-Envelope-To除archive@domain 之外的所有用户。

问题

最初X-Envelope-To每个都有一个。RCPT TO所以我希望筛子脚本添加一个连接多个值的Bcc标题。X-Envelope-To

require "fileinto";
require "imap4flags";
require ["editheader", "envelope"];
require "regex";
require ["variables","mime","foreverypart"];


if envelope :is "to" "archive@domain" {
   concat = """"";
   foreverypart {
        if header :regex "X-Envelope-To" "(.*)" {
        concat = ${concat}  "${1}";
        }
   }
   addheader "Bcc" "${1}";

} else {
   deleteheader "X-Envelope-To";
}

哪个不起作用...

有什么简单的方法可以在筛子中做到这一点?或者除了外部脚本之外别无他法?或者也许后缀可以连接所有这些,但这意味着 milter ?

提前致谢

dovecot sieve headers
  • 1 个回答
  • 58 Views
Martin Hope
jeefo
Asked: 2021-06-09 06:22:56 +0800 CST

Postfix + Dovecot,Sieve 执行流程和自动回复

  • 1

我在我的服务器上使用 Postfix 和 Dovecot LMTP。我的问题是如何创建一个静默丢弃收件人地址并响应自动回复?我还想学习 Postfix 和 Dovecot 执行控制流程。这是我的后缀的一部分main.cf:

alias_maps = hash:/etc/aliases

# Virtual domains
virtual_uid_maps        = static:5000
virtual_gid_maps        = static:5000
virtual_minimum_uid     = 115
virtual_mailbox_base    = /home/vmail
virtual_mailbox_maps    = mysql:/etc/postfix/mysql/mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/domains.cf
virtual_alias_maps      = mysql:/etc/postfix/mysql/aliases.cf
virtual_transport       = lmtp:unix:private/dovecot-lmtp

在我的/etc/aliases:

devnull: /dev/null

在我的拙见中,Postfix 处理收件人地址是否存在?如果存在收件人地址,则传输到 Dovecot LMTP 以处理本地交付。是否可以在 Postfix 中进行有条件传输?例如,我想创建一个测试邮件地址,例如[email protected]. 哪个帐户别名为devnull。我的目标是收件人[email protected]默默地丢弃传入的邮件并自动回复 PONG 消息给发件人以进行测试。如果收件人地址不是[email protected]然后传输到 Dovecot-lmtp。我尝试使用带有假期扩展的 Dovecot Sieve 过滤器插件来处理自动回复。但是在我系统的mail.log中:

# replaced actual domain name with DOMAIN

postfix/lmtp[13532]: 62EBD333697: to=<devnull@DOMAIN>, orig_to=<ping@DOMAIN>, relay=DOMAIN[private/dovecot-lmtp], delay=538, delays=538/0.02/0.01/0.44, dsn=5.1.1, status=bounced (host DOMAIN[private/dovecot-lmtp] said:
 550 5.1.1 <devnull@DOMAIN> User doesn't exist: devnull@DOMAIN (in reply to RCPT TO command))

所以,我猜 Dovecot Sieve 过滤器插件不适用于不存在的帐户。是否可以在检查用户邮箱之前执行 Sieve 脚本?如果是这样,我什至不需要使用devnull黑洞别名。我可以在我的筛子脚本中这样做:

if address :matches "To" "ping@*" {
    vacation
        :seconds 1
        "PONG";
    discard;
}

更新:

我在我的数据库中创建了一个名为的用户ping,并在我的 GMail 帐户中收到了一封回复邮件。但这并不是真正的回复邮件。这是我收件箱里的新邮件。然后我尝试使用 Apple 邮件 GUI 软件手动回复。它按预期工作。然后我去 gmail 并按菜单show original。

Apple Mail 的message-id域部分是正确的发件人虚拟域。 来自 Apple 邮件

但是来自 Dovecot/Sieve 的message-id域部分是我服务器的hostname. 从筛假期

我不知道为什么会这样。但我的猜测是可能是因为域名被更改了?在 Apple Mail 软件的工作示例中,它是正确的发件人虚拟域。但是从筛子自动回复中,它改变了我服务器的真实主机名。

另一个 Postfix 日志来自/var/log/mail.log

postfix/cleanup[1329]: EE83F333699: message-id=<dovecot-sieve-1623257247-953496-0@HOSTNAME>

PS:我只有几天的 Postfix、Dovecot 经验和几个小时的筛子脚本经验。我是新手。我希望我的问题和目标足够明确。如果您需要更多信息,请问我。

postfix dovecot sieve
  • 2 个回答
  • 656 Views
Martin Hope
AlesP
Asked: 2021-04-21 06:40:57 +0800 CST

后缀别名和重复电子邮件 - 使用 Dovecot

  • 0

这实际上是这篇文章的后续问题:Postfix aliases and duplicate e-mails, how to fix?

(我没有足够的声誉来评论那篇文章。)

正如第一个答案所暗示的那样,我已经设置了我的 Postfix + Dovecot - 通过使用丢弃重复项的筛子脚本。它在大多数情况下运行良好。当收件人超过配额时,它会奇怪地工作。

这是第一次交付尝试的日志。正如预期的那样,它因 tempfail Quota 超出而失败:

AF4481700032: to=<?@?>, relay=?[private/dovecot-lmtp], delay=0.05, delays=0.05/0/0/0, dsn=4.2.2, status=deferred (host ?[private/dovecot-lmtp] said: 452 4.2.2 <?@?> Quota exceeded (mailbox for user is full) (in reply to end of DATA command))

大约 10 分钟后,再次尝试:

dovecot: lmtp(?)<1742912><+EYHBXjidmBAmBoAcAY70w>: sieve: msgid=<489132c2-7b77-cd2f-ce60-439f6558ddcf@?>: marked message to be discarded if not explicitly delivered (discard action)
postfix/lmtp[1742691]: AF4481700032: to=<?@?>, relay=?[private/dovecot-lmtp], delay=431, delays=431/0/0/0, dsn=2.0.0, status=sent (250 2.0.0 <?@?> +EYHBXjidmBAmBoAcAY70w Saved)
postfix/qmgr[421343]: AF4481700032: removed

在我看来,Dovecot 的筛子在第一次尝试传递时记录了消息 ID,尽管传递被拒绝了。

在第二次投递尝试中,Dovecot 的筛子显然认为它看到了重复邮件,并丢弃了邮件。

这种情况有什么解决方法吗?

postfix dovecot sieve
  • 1 个回答
  • 322 Views
Martin Hope
Jacob
Asked: 2020-08-18 23:41:36 +0800 CST

筛选过滤器从子地址中删除详细信息部分

  • 0

我目前有一个筛滤器,如下所示:

require ["variables", "envelope", "fileinto", "vnd.dovecot.filter", "subaddress"];
if envelope :matches "to" "*" {
        set :lower "my_recipient" "${1}";
        filter ".." "${my_recipient}";
        fileinto "INBOX";
}

这很好用。但是我的过滤器当前无法正确处理子地址,例如:[email protected]

所以我想将my_recipient变量设置为 [email protected] 以使过滤器正常工作,即使信封设置为 [email protected]

我已经阅读了子地址文档,我可以看到如何获取user部分或domain部分,但不知道如何获取完整地址,包括没有detail部分的域。我怎么能做到这一点?

email dovecot sieve
  • 1 个回答
  • 104 Views
Martin Hope
dcdruck
Asked: 2016-12-28 09:10:17 +0800 CST

如何使用 sieveInstall 为电子邮件中带有点的用户安装筛子

  • 0

我在 StackOverflow 上的成员已经有一段时间了,但这是我在 ServerFault 上的第一篇文章,所以如果我在这篇文章中做错了什么,请随时打电话给我。

TL;DR:使用 Cyrus 和 sendmail。我们有类似firstname.lastname@ourdomain但sieveInstall -i <user> <compiled_sieve>只允许使用字母数字的电子邮件。我不知道如何解决这个问题。

我的公司在 AWS EC2 Linux 服务器上使用 Cyrus (v2.3.16-Fedora-RPM-2.3.16-6.9.amzn1) 和 sendmail。

从历史上看,我们使用firstname@ourdomain电子邮件地址是因为我们很小。然而,我们正在成长并开始firstname.lastname@ourdomain为所有新员工使用。

要进行服务器端邮件过滤,我们使用筛子。我们获取用户定义的过滤规则列表,从这些规则中创建一个筛选器,使用 编译它sievec,然后使用 安装它sieveInstall -i <user> <compiled_sieve>。这一切都由 Perl 脚本自动完成。

我遇到的问题是它sieveInstall不适用于其中包含非字母数字字符(例如点)的电子邮件,因此新员工无法使用我们的服务器端过滤。这对于我们较旧的 firstname@ourdomain 电子邮件非常有效。

文档sieveInstall似乎不存在,也没有手册页。

有谁知道我如何做到这一点?

我也简要调查过,sieveshell但由于某种原因它无法连接到本地主机,可能是因为端口未打开。

sieve cyrus
  • 1 个回答
  • 142 Views
Martin Hope
JackTheKnife
Asked: 2016-12-10 07:39:06 +0800 CST

Dovecot 和脚本执行 - 系统命令的权限被拒绝

  • 0

我有一个正在寻找邮箱路径的 shell 脚本

result=`find /var/mailboxes -type d -name [email protected]`
perl -pi -e 's/Folder-to-Remove//g' $result/subscriptions

但是通过 Dovecot Sieve 执行它我收到一条错误消息:

lmtp:错误:查找:`/var/mailboxes/63':权限被拒绝

甚至/var/mailboxes/63不属于[email protected]

Shell 脚本有权被其他人执行。

bash dovecot shell-scripting sieve
  • 1 个回答
  • 358 Views
Martin Hope
JackTheKnife
Asked: 2016-12-07 11:48:31 +0800 CST

如何在 Dovecot's Sieve 中创建文件夹但不订阅?

  • 1

我有筛规则:

 if header :contains "subject" ["TOP-SECRET"] {
    setflag "\\Seen";
    fileinto :create "Hidden-Folder";
    stop;
}

基于此TOP-SECRET,主题中包含的任何内容都被移动到hidden-folder并设置为已读。

有没有办法Hidden-Folder通过筛子将其设置为未订阅(从文件夹列表中隐藏)?或者如何“管道”哪个帐户订阅文件必须由脚本编辑?

dovecot sieve
  • 2 个回答
  • 892 Views
Martin Hope
CaptSaltyJack
Asked: 2014-01-13 10:38:08 +0800 CST

dovecot sieve 中的“停止”命令有什么作用?

  • 2

规则文件中有一个名为 的命令stop,它会停止处理。我不确定为什么需要这样做。如果它是规则中指令列表中的最后一个命令,那么该规则不是已经完成处理了吗?或者这是否意味着不要跳到列表中的下一条规则?换句话说,假设我的筛子文件有一个规则列表:

Rule A
Rule B
Rule C
Rule D

stop如果规则 B末尾有命令,规则 C 和 D 会被跳过吗?我假设规则按照它们出现在筛子文件中的顺序执行?

sieve
  • 1 个回答
  • 2519 Views
Martin Hope
Steve
Asked: 2010-01-10 11:55:35 +0800 CST

如何在 cyrus-imap 文件夹上运行 sieve?

  • 1

我有一个筛子脚本,我想在我的 cyrus imap 设置中的一个文件夹上运行它。该脚本已经可以很好地处理新收到的邮件,但我也必须在旧邮件存档上运行它。

有没有简单的方法可以做到这一点?还是一种简单的方法来“重新传递”邮件而不添加额外的标题?

email imap sieve cyrus
  • 1 个回答
  • 528 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve