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