aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'ihatemoney/utils.py')
-rw-r--r--ihatemoney/utils.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/ihatemoney/utils.py b/ihatemoney/utils.py
index 175b762..adced8f 100644
--- a/ihatemoney/utils.py
+++ b/ihatemoney/utils.py
@@ -7,6 +7,8 @@ from json import JSONEncoder, dumps
import operator
import os
import re
+import smtplib
+import socket
from babel import Locale
from babel.numbers import get_currency_name, get_currency_symbol
@@ -28,6 +30,22 @@ def slugify(value):
return re.sub(r"[-\s]+", "-", value)
+def send_email(mail_message):
+ """Send an email using Flask-Mail, with proper error handling.
+
+ Return True if everything went well, and False if there was an error.
+ """
+ # Since Python 3.4, SMTPException and socket.error are actually
+ # identical, but this was not the case before. Also, it is more clear
+ # to check for both.
+ try:
+ current_app.mail.send(mail_message)
+ except (smtplib.SMTPException, socket.error):
+ return False
+ # Email was sent successfully
+ return True
+
+
class Redirect303(HTTPException, RoutingException):
"""Raise if the map requests a redirect. This is for example the case if