The CodaLab website requires the ability to send emails when a user forgets his or her password and requests a password reset.
We use the "SendGrid add-on to Windows Azure" to send emails via SMTP.
The SendGrid developer documentation explains how to integrate the email service in Django. In addition, the Django project provides comprehensive documentation: https://docs.djangoproject.com/en/dev/topics/email/. Additional notes are collected below.
The key settings that affect how emailing works follow.
The Site configuration also plays a role because it defines the domain name associated with the website. The site domain name and a human-readable name of the website are defined in the settings by:
CODALAB_SITE_DOMAIN = 'codalab.org' CODALAB_SITE_NAME = 'CodaLab'
initialize.py script inserts these names in the database. Recall that
initialize.py is located in
codalab/scripts and is used to insert constants into the database. To illustrate how the site info is used, consider the email sent to a user resetting his or her password:
The subject field of the email uses the verbose name of the site, while the body of the email includes several references to
codalab.org, which is given by the site's domain name.
Testing Without Sending E-mails
As noted in the Django documentation, one can avoid sending emails during development but still see them in the console by setting:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
This is the default configuration for the base