Currently Communote needs an SMTP server for things like user registration or user invitation. On development systems it is already possible to route all outgoing mails to a configured mail address but you still need to define an SMTP server hosted by yourself or a public ESP.
To ease development one solution would be to remove the requirement for an email server (e.g. allow skipping the config step during installation, disable features that need to send an email and so on). However, this has the disadvantage that some features (user registration, ...) cannot be used until one is configured. An alternative could be to not send the emails on a development system but instead just store them on disk as text files. The automatic integration tests already do this but in a not reusable way.
Objectives
refactor usage of development.properties by evaluating them in a factory which creates the actual sender that stores the messages on disk in the data directory, routes all to one email address or sends them normally
cleanup of current mailing API (code reuse for SMTP server configuration tests, decouple MailMessage from Spring's MimeMessagePreparator, change MailManagement to non-transactional Spring service, ...)
use development.properties in automatic integration tests
Currently Communote needs an SMTP server for things like user registration or user invitation. On development systems it is already possible to route all outgoing mails to a configured mail address but you still need to define an SMTP server hosted by yourself or a public ESP.
To ease development one solution would be to remove the requirement for an email server (e.g. allow skipping the config step during installation, disable features that need to send an email and so on). However, this has the disadvantage that some features (user registration, ...) cannot be used until one is configured. An alternative could be to not send the emails on a development system but instead just store them on disk as text files. The automatic integration tests already do this but in a not reusable way.
Objectives