summaryrefslogtreecommitdiff
path: root/src/providers
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers')
-rw-r--r--src/providers/MailerSend.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/providers/MailerSend.cpp b/src/providers/MailerSend.cpp
index fe83aea..e219165 100644
--- a/src/providers/MailerSend.cpp
+++ b/src/providers/MailerSend.cpp
@@ -62,13 +62,21 @@ bool _MailerSend_send_email(const char* sender, const char* recipient, const cha
if (!res) {
logger::error("Failed to send email. Reason: Timeout");
- return E_ERR_FAILED_REQUEST;
+ return E_ERR_TIMEOUT;
}
if (res->status != 200 && res->status != 202) {
int status = res->status;
logger::error("Failed to send email. Status code: '%d'", status);
- return E_ERR_FAILED_REQUEST;
+ logger::error(res->body.c_str());
+
+ switch(status) {
+ case 403:
+ case 401: return E_ERR_UNAUTHORIZED;
+ case 429: return E_ERR_LIMITS_REACHED;
+ case 500: return E_ERR_SERVER_ERROR;
+ default: return E_ERR_FAILED_REQUEST;
+ }
}
logger::info("Email sent.");