forked from scVENUS/PeekabooAV-amavisd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
83 lines (75 loc) · 3.97 KB
/
TODO
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
SMTP, LMTP, mail address handling
- split_localpart(): check 'owner-special' handling, e.g. foo-request-spam@
- separate the application from SMTP protocol handling
- one_response_for_all: report (propagate) all MTA SMTP responses if different
MAIL MODIFICATIONS, EXPAND, NOTIFICATIONS:
- use modified headers (and body?) as provided by SA ?
- macro expander: do not replace formal arguments %<n> which are within
quoted replacement text (in the regexp macro as well);
- use macro expander instead of simple string replacements
in Subject template edits;
- provide per-recipient 'header_edits' property so that custom hooks
will be able to add per-recipient headers; suggested by Jacob Leaver;
- per-virus notifications, e.g. include URL or instructions in DSN
(could make use of associative arrays in EXPAND if available);
- don't send notifications if notifications text turns out to be empty,
making it possible for a macro expansion during customization
to turn off DSN (Florian Effenberger);
- choose the admin sender address and From header in DSN
based on recipient address/domain (how to handle multiple recipient mail?);
VIRUS AND OTHER MALWARE SCANNING:
- some virus scanners need option '--mbox' when given full mail file,
but not on already decoded parts (Michael Boelen);
- some scanners need proper file name extension to be able to recognize
and decode a file correctly;
- viruses_that_recips_dont_care_about;
- optimize-away banned checks when bypassing banned checks is requested
and $banned_namepath_re is used;
- keep consulting a blacklist even if spam checking is bypassed;
MAIL DECODING/DE-ARCHIVING:
- unwrap pgp/gpg armoring, especially on signed-only messages;
- file(1) is unable to differentiate or recognize various types
of pgp/gpg mail (signed/encrypted/armored/signature/key);
- per-recipient bypass_decoding;
- yEnc encoding www.yenc.org (NNTP); Appledouble encoding, Macintosh StuffIt;
- store_mgr: stop_expensive_decoding_at=n ?
- seek some solution to prevent decoder from attempting to create files
outside of its designated directory;
- provide separate failure modes of expected (I/O, system) and unexpected
errors when decoding;
INTERNALS, CODING, ...
- use timers in a manner providing some resiliency to clock jumps;
- use multi-timers Perl module? make timer independent of its use by SA;
QUARANTINE
- provide per-recipient headers such as X-Spam* scores in the quarantined msg;
- do the quarantining later in the flow (after forwarding) to be able
to do the correct intersect between per-recipient quarantine_to
and per-recipient kill level and other blockings;
- automatically turn off quarantinining when mail is to be delivered;
- update msgrcpt.rs field after a quarantine release;
- support quarantining by MTA (milter, HOLD);
- invoke sa-learn when releasing false positives from quarantine;
GENERAL, NEW FEATURES
- provide a LDAP and SQL proxy (or make use of the Postfix proxy_read_maps)
to reduce the number of sessions to LDAP and SQL server;
- "reverse AM.PDP" - lookups on external information sources or provide
information to external plugins;
- should bypass* implicitly turn on *lovers?
- do not notify recipient when they will receive mail anyway (D_PASS,*_lovers)
- notify when placing on HOLD at MTA ?
- configurable action on HOLD ?
- timeout -> HOLD ?
- notify at double bounce? (treat/describe as DISCARD)
- store information about detected virus names to SQL when logging to SQL
- AM.PDP should be able to split mail by discarding a request and explicitly
re-sending it
DOCUMENTATION
- documentation, documentation, documentation;
- malformed mail project and the like: tests, write FAQ;
- cleaner web page;
SOME OF THE MORE SELF-CONTAINED PROJECTS
- write a Perl module for interfacing with libarchive
(http://people.freebsd.org/~kientzle/libarchive/), which is an
ambitious (currently primarily FreeBSD) programming library that can
create and read several streaming archive formats, including most
popular tar variants and the POSIX cpio format.