Email 后缀+;Dovecot-如何为客户接收邮件anyuser@anydomain

Email 后缀+;Dovecot-如何为客户接收邮件anyuser@anydomain,email,postfix-mta,dovecot,Email,Postfix Mta,Dovecot,所以主要的想法是我想做这样的事情: 1) 我发电子邮件给anyrandomuser@anyofmydomain.com 2) 我通过Dovecot接收,或者至少将其存储在maildir中,如: /vmail/%anydomain/%anyuser 我试过这样的方法: cat/etc/postfix/main.cf inet_interfaces = all inet_protocols = ipv4 relay_domains = * virtual_mailbox_domains=hash:

所以主要的想法是我想做这样的事情:

1) 我发电子邮件给anyrandomuser@anyofmydomain.com

2) 我通过Dovecot接收,或者至少将其存储在maildir中,如: /vmail/%anydomain/%anyuser

我试过这样的方法:

cat/etc/postfix/main.cf

inet_interfaces = all
inet_protocols = ipv4

relay_domains = *
virtual_mailbox_domains=hash:/etc/postfix/vmail_domains
virtual_mailbox_maps=hash:/etc/postfix/vmail_mailbox

virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2222
virtual_transport = virtual
virtual_uid_maps = static:2222
virtual_gid_maps = static:2222
cat/etc/postfix/vmail_邮箱

@d1.com     d1.com/catchall/
@d2.com     d2.com/catchall/
@d3.com     d3.com/catchall/
所以这很有效。但它仅限于/etc/postfix/vmail_邮箱中的域列表,所有邮件最终都位于同一目录中。我尝试使用pcre映射进行排序,如下所示:

cat/etc/postfix/vmail_邮箱\u pcre

/([^\@]+)@([^\s]+)/ ${2}/${1}/
但它不起作用。这就是我在日志中看到的:

Jan 26 09:41:04 localhost postfix/virtual[5579]: warning: pcre map /etc/postfix/vmail_mailbox_pcre, line 1: regular expression substitution is not allowed: skipping this rule

有人做过这样的事吗?我愿意接受任何帮助。谢谢。

接收邮件似乎对您有效,问题似乎在于根据收件人域对邮件进行排序。可能是您要使用排序的内容

/etc/postfix/vmail\u mailbox\u pcre
的问题是,regexp分隔符(The
/
)被使用了两次以上,因此regexp引擎变得混乱。请尝试使用其他非字母数字字符:

#([^\@]+)@([^\s]+)# ${2}/${1}/

接收邮件似乎对您有效,问题似乎在于根据收件人域对邮件进行排序。可能是您要使用排序的内容

/etc/postfix/vmail\u mailbox\u pcre
的问题是,regexp分隔符(The
/
)被使用了两次以上,因此regexp引擎变得混乱。请尝试使用其他非字母数字字符:

#([^\@]+)@([^\s]+)# ${2}/${1}/

不,不是那样的。Regexp字符串绝对正确。由于后缀安全限制,此位置不允许正则表达式替换。这样做的正确方法似乎是在dovecot中处理所有邮件。我想我找到了解决办法。我会在一些测试之后发布。不,不是那样的。Regexp字符串绝对正确。由于后缀安全限制,此位置不允许正则表达式替换。这样做的正确方法似乎是在dovecot中处理所有邮件。我想我找到了解决办法。我会在一些测试之后发布它。