[Fixes #45588387] Refactors Mail API

When introducing the postmark service, i tried
to implement it on top of the javax.mail API-
the javax.mail.Message object was simply translated
into JSON and posted to the postmark service.

However, since the Javax.mail API is quite complex,
had to make several assumptions about which parts
to implement a mapping to the postmark json format.

This makes it easy for bugs to arrive when a new
component (or this case, an existing component)
uses a part of the javax.mail api for which
no mapping to the postmrk json format is implemented.

To address this properly, have introduced a simpler
API (the message object) which has a simple structure
and can be easily mapped either to the postmark message
format or to the javax.mail api for sending via smtp.