When communcating with external network services, detect transient failures and queue for retry
For improved resiliency, CiviCRM should detect transient failures when communicating with external network services and queue for retry. e.g.
- Transactional email: Queue for sending rather than sending during the request process?
- Bulk mail: Catch transient failures and ensure that they are retried. PRs: https://github.com/civicrm/civicrm-core/pull/11838 https://github.com/civicrm/civicrm-core/pull/11840 (and there are additional failure scenarios possible)