From 487e7566f92af885f6b222a52cf9ba5e6d48a6f5 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs <me@danielgibbs.co.uk>
Date: Fri, 18 Sep 2020 10:52:06 +0100
Subject: [PATCH] sendgrid

---
 .../config-lgsm/jc2server/_default.cfg        |  4 +++
 lgsm/functions/alert_sendgrid.sh              | 31 +++++++++++++++++++
 lgsm/functions/core_functions.sh              |  5 +++
 3 files changed, 40 insertions(+)
 create mode 100644 lgsm/functions/alert_sendgrid.sh

diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index b19971fed..17f62ab24 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -69,6 +69,10 @@ rocketchatalert="off"
 rocketchatwebhook="webhook"
 rocketchattoken=""
 
+# Sendgrid Email Alerts | https://docs.linuxgsm.com/alerts/sendgrid
+sendgridalert="off"
+sendgridtoken="accesstoken"
+
 # Slack Alerts | https://docs.linuxgsm.com/alerts/slack
 slackalert="off"
 slackwebhook="webhook"
diff --git a/lgsm/functions/alert_sendgrid.sh b/lgsm/functions/alert_sendgrid.sh
new file mode 100644
index 000000000..31adaaa92
--- /dev/null
+++ b/lgsm/functions/alert_sendgrid.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+# LinuxGSM alert_sendgrid.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Sends Sendgrid Email alert.
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+if [ "${mailgunapiregion}" == "eu" ]; then
+	mailgunapiurl="https://api.eu.mailgun.net"
+else
+	mailgunapiurl="https://api.mailgun.net"
+fi
+
+fn_print_dots "Sending Email alert: Mailgun: ${email}"
+
+mailgunsend=$(curl -s --user "api:${mailguntoken}" \
+-F from="LinuxGSM <${mailgunemailfrom}>" \
+-F to="LinuxGSM Admin <${mailgunemail}>" \
+-F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
+-F o:tag='alert' \
+-F o:tag='LinuxGSM' \
+-F text="$(cat "${alertlog}")" "${mailgunapiurl}/v3/${mailgundomain}/messages")
+
+if [ -z "${mailgunsend}" ]; then
+	fn_print_fail_nl "Sending Email alert: Mailgun: ${email}"
+	fn_script_log_fatal "Sending Email alert: Mailgun: ${email}"
+else
+	fn_print_ok_nl "Sending Email alert: Mailgun: ${email}"
+	fn_script_log_pass "Sending Email alert: Mailgun: ${email}"
+fi
diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh
index f136fa758..76f868531 100755
--- a/lgsm/functions/core_functions.sh
+++ b/lgsm/functions/core_functions.sh
@@ -579,6 +579,11 @@ functionfile="${FUNCNAME[0]}"
 fn_fetch_function
 }
 
+alert_sendgrid.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
 alert_slack.sh(){
 functionfile="${FUNCNAME[0]}"
 fn_fetch_function