For almost 10 years I have been working with email (SMTP) as
integration technology. It is often used between different
organizations. Using email as integration technology may seem
outdated but it is not.
Here is a list of advantages:
- Infrastructure (Mail servers etc.) is often already there. no need to install new software
- Knowledge of SMTP is often available because someone has to operate the mail service within the organization anyway
- Chances are high there are email libraries for your development plattform given how widespread the use case of sending and receiving mails is.
- No need for a point-to-point connection between two IT-systems because email uses several “hops” to get delivered. No need for new firewall rules, application level gateways etc.
- Email is asynchronous. Unless you need an instant answer, using async services is a good thing. Asynchronous messaging is promoted in the context of microservices.
- For manual testing you can send mails from your email client to
- For manual testing or monitoring, you can easily configure another mailbox that receives mails beside the actual mailbox (just add an additional address in “To” field or add a “Cc” field)
- Although email is one-way communication in one case we have implemented acknowledge mails with timeout rules and a retry mechanism
- emails can be automatically acknowledged (called “delivery status notification”) but this is often configured for non-delivery only
- there are standards for “doing things”, like encryption
Of course there are some disadvantages:
- less control: you may depend on that “mail guy” for configuring stuff and looking after log files. this might not be a problem unless you are practicing DevOps because that “mail guy” is part of the operations team anyway
- less control: there might be a mail server between source and destiny that does something like adding a PGP signature or rewriting a header that changes the message
- you may have to deal with additional mails like non-delivery-mails. These mails inform you that your original mail could not be delivered
- there are size limitations, email is not suitable for sending large filesSo from my point of you there are a number of advantage of using email
as integration technology when exchanging messages between two or
more different organizations.