summaryrefslogtreecommitdiff
path: root/home/mail/dovecot.sieve
blob: 861a11812a34f246a3f6100ce7a0b2f8ff91af44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Comando (pkgs.dovecot_pigeonhole) para filtrar mensajes existentes:
#
# $ sieve-filter -v -C -u alejandro@34project.org ~/.dovecot.sieve INBOX
#
# Ese comando es un dry-run, agregar "-W -e" para proceder. Probablemente es
# buena idea hacer 'snapshot -r' de ~/mail antes de ejecutar eso. El primer run
# tomó como 15 minutos para procesar todo el maildir.
#
# https://blog.bastelfreak.de/2020/08/dovecot-apply-sieve-filter-to-existing-emails/

require ["fileinto", "mailbox"];

if anyof(
  address :is "from" ["mailer-daemon@34project.org"],
  address :is :localpart "to" ["abuse", "security", "postmaster", "hostmaster", "sysadmin"]
) {
  fileinto :create "admin";
} elsif address :is "from" "notifications@github.com" {
  fileinto :create "github";
} elsif address :is "from" [
    "lwn@lwn.net",
    "info@fsf.org"
  ]
{
  fileinto :create "news";
} elsif anyof(
  address :is "from" [
    "factura@factura.tigo.cr",
    "factura_electronica@claro.cr",
    "bcrtarjestcta@bancobcr.com"
  ],

  allof(
    address :is "from" "bncontacto@bncr.fi.cr",
    header :is "Subject" "Voucher Digital"
  ),

  allof(
    address :is "from" [
      "support-renew@gandi.net",
      "support-es@gandi.net",
      "support-es@support.gandi.net"
    ],

    header :contains "Subject" ["Automatic crediting", "Factura", "domain name renewed"]
  )
) {
  fileinto :create "bills";
} elsif address :is :domain ["from", "to"] ["estudiantec.cr", "itcr.ac.cr", "tec.ac.cr"] {
  fileinto :create "tec";
} elsif address :is :domain "from" ["turing.com", "paypal.com"] {
  fileinto :create "spam";
}