Introduce modules:
- lacre.transport - for actual delivery via SMTP
- lacre.smime - to take care of S/MIME stuff
Implement lacre.transport.SendFrom class that does a almost exactly the same
thing as the original send_msg function, but without using global variable to
store original message sender.
First initialise logging, then import lacre.mailgate module. Otherwise,
module's logging quitely initialises its own root logger that doesn't use
configuration provided by the user.
Also: remove unnecessary "global" keywords.
If a user registers their key for address alice@example.com but receives a
message sent to alice+something@example.com, this message should be encrypted
as well.
- Implement delimiter support for GnuPG encryption.
- Add E2E test case for a clear text message delivered to an address with
delimiter.
- Fix minor bug: wrong configuration parameter was retrieved when logging
information about enc_domain_keymap being active.
After each execution, log an entry with information about total seconds from
the start to the end of execution and the value returned by
time.process_time() function, which returns:
sum of the kernel and user-space CPU time
according to the documentation.
This feature can be used to collect stats about Lacre performance.
Also: extend failover logging configuration with file-based handler to make
sure that the user gets _some_ logs even if they do not configure Lacre at
all.
- Add a new test input message for a new test identity, test scenario
configuration and a test key.
- While retrieving message payload, determine charset based on the
Content-Type header. When missing, default to UTF-8.
- Use more comprehensible variables names.
- Adjust logging levels.
- Replace custom logging code with calls to logging module.
- Use logging.config to provide configuration parameters.
To make Lacre's logging more flexible, use fileConfig from logging.config to
set up all parameters. If the configuration file is missing, use dictConfig
with hardcoded reasonable defaults.
- Move configuration-processing code to a separate module (lacre.config) and
provide a simple API to access configuration parameters.
- Prepare to use builtin logging module to log diagnostic data.
- Rework the configuration-processing file to make it cleaner.
- Log additional information while processing configuration.
- Reorder functions.
Content type not passed to encrypted submime causing bug where is only html is sent for example, the email client will not decode the html before displaying the email.