Gracefully handle email.send() problems
If the server used to send email is down or the service doesn't respond, different problems arise (error 500 or timeout when writing to database resulting in a lock for example). They could probably be handled more gracefully, and give more feedback to administrators to let them know what the root issue is.
The best way of doing so is probably to set a timeout in Django's send mail, and to catch smtplib exceptions. This way, the transaction could follow through, with a message messages.error
displayed on the next page.