Services (or Managers) are singletons and drive the overall application orchestration.
They might be considered part of the model or of the view, depending on their nature.
- One service contains a list of all mail accounts. This is the core of the model, and central access point for servers, folders, and finally messages and their attachments. It will also trigger the mail server login at application startup, and the automatic mail polling.
- Other services will listen to external input, e.g. the mailto: handler.
Access to UI: Some services – e.g. the mailto: handler – can only exist once in the application, but still need to open a UI – in this case, a composer window. Most services need a way to show errors, without disrupting the user, but still noticeable.