mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 19:42:37 +02:00
Catch SMTP errors
This commit is contained in:
parent
b3062fd385
commit
c410a4558f
1 changed files with 35 additions and 17 deletions
|
@ -141,6 +141,7 @@ async def sesame(request, response):
|
||||||
async def send_sesame(request, response, unprotected=True):
|
async def send_sesame(request, response, unprotected=True):
|
||||||
email = request.form.get("email")
|
email = request.form.get("email")
|
||||||
token = utils.create_token(email)
|
token = utils.create_token(email)
|
||||||
|
try:
|
||||||
emails.send_from_template(
|
emails.send_from_template(
|
||||||
env,
|
env,
|
||||||
"access_granted",
|
"access_granted",
|
||||||
|
@ -149,6 +150,9 @@ async def send_sesame(request, response, unprotected=True):
|
||||||
hostname=request.host,
|
hostname=request.host,
|
||||||
token=token.decode(),
|
token=token.decode(),
|
||||||
)
|
)
|
||||||
|
except RuntimeError:
|
||||||
|
response.message("Oops, impossible d'envoyer le courriel…", status="error")
|
||||||
|
else:
|
||||||
response.message(f"Un sésame vous a été envoyé à l'adresse '{email}'")
|
response.message(f"Un sésame vous a été envoyé à l'adresse '{email}'")
|
||||||
response.redirect = "/"
|
response.redirect = "/"
|
||||||
|
|
||||||
|
@ -339,10 +343,20 @@ async def place_order(request, response, id):
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
if user and user.email == email:
|
if user and user.email == email:
|
||||||
# Only send email if order has been placed by the user itself.
|
# Only send email if order has been placed by the user itself.
|
||||||
|
try:
|
||||||
emails.send_order(
|
emails.send_order(
|
||||||
request, env, person=Person(email=email), delivery=delivery, order=order
|
request,
|
||||||
|
env,
|
||||||
|
person=Person(email=email),
|
||||||
|
delivery=delivery,
|
||||||
|
order=order,
|
||||||
|
)
|
||||||
|
except RuntimeError:
|
||||||
|
response.message("Impossible d'envoyer le courriel…", status="error")
|
||||||
|
else:
|
||||||
|
response.message(
|
||||||
|
f"La commande pour «{email}» a bien été prise en compte!"
|
||||||
)
|
)
|
||||||
response.message(f"La commande pour «{email}» a bien été prise en compte!")
|
|
||||||
response.redirect = f"/livraison/{delivery.id}"
|
response.redirect = f"/livraison/{delivery.id}"
|
||||||
else:
|
else:
|
||||||
order = delivery.orders.get(email) or Order()
|
order = delivery.orders.get(email) or Order()
|
||||||
|
@ -364,9 +378,13 @@ async def send_order(request, response, id):
|
||||||
if not order:
|
if not order:
|
||||||
response.message(f"Aucune commande pour «{email}»", status="warning")
|
response.message(f"Aucune commande pour «{email}»", status="warning")
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
emails.send_order(
|
emails.send_order(
|
||||||
request, env, person=Person(email=email), delivery=delivery, order=order
|
request, env, person=Person(email=email), delivery=delivery, order=order
|
||||||
)
|
)
|
||||||
|
except RuntimeError:
|
||||||
|
response.message("Oops, impossible d'envoyer le courriel…", status="error")
|
||||||
|
else:
|
||||||
response.message(f"Résumé de commande envoyé à «{email}»")
|
response.message(f"Résumé de commande envoyé à «{email}»")
|
||||||
response.redirect = f"/livraison/{delivery.id}"
|
response.redirect = f"/livraison/{delivery.id}"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue