所以主要的想法是我想做这样的事情:
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_mailbox
@d1.com d1.com/catchall/
@d2.com d2.com/catchall/
@d3.com d3.com/catchall/
所以这很好用。但它仅限于/ etc / postfix / vmail_mailbox中的域名列表,并且所有邮件都在同一目录中。我尝试用pcre-map进行一些排序,如下所示:
cat / etc / postfix / vmail_mailbox_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
有没有人这样做过?我愿意接受任何帮助。感谢。
答案 0 :(得分:0)
接收邮件似乎对您有用,问题似乎在于根据收件人域对邮件进行排序。 dovecot sieve extension可能是你想要使用排序的。
Dummy <- matrix(runif(100000000,0,3), ncol = 10000)
system.time(apply(Dummy,1,function(x) NULL))
## user system elapsed
## 1.360 0.160 1.519
system.time(apply(Dummy,2,function(x) NULL))
## user system elapsed
## 0.94 0.12 1.06
的问题是正则表达式分隔符(apply()
)的使用次数超过两次,因此正则表达式引擎会混淆。尝试使用其他一些非字母数字字符:
/etc/postfix/vmail_mailbox_pcre