diff --git a/restic_compose_backup/alerts/__init__.py b/restic_compose_backup/alerts/__init__.py
index 785d892..4c3c046 100644
--- a/restic_compose_backup/alerts/__init__.py
+++ b/restic_compose_backup/alerts/__init__.py
@@ -12,7 +12,24 @@ ALERT_TYPES = [ALERT_INFO, ALERT_ERROR]
 BACKENDS = [SMTPAlert, DiscordWebhookAlert]
 
 
-def configured_alert_classes():
+def send(subject: str = None, body: str = None, alert_type: str = 'INFO'):
+    """Send alert to all configured backends"""
+    alert_classes = configured_alert_types()
+    for instance in alert_classes:
+        logger.info('Configured: %s', instance.name)
+        try:
+            instance.send(
+                subject=f'[{alert_type}] {subject}',
+                body=body,
+            )
+        except Exception as ex:
+            logger.error("Exception raised when sending alert [%s]: %s", instance.name, ex)
+
+    if len(alert_classes) == 0:
+        logger.info("No alerts configured")
+
+
+def configured_alert_types():
     """Returns a list of configured alert class instances"""
     logger.debug('Getting alert backends')
     entires = []