-
Notifications
You must be signed in to change notification settings - Fork 129
E mail notifications
The CodaLab web site requires the ability to send e-mails when a user forgets her password and requests a password reset. The functionality is only needed for future scenarios.
We use the SendGrid add-on to Windows Azure to send e-mails via SMTP.
The SendGrid developer's documentation explains how to integrate the e-mail 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 which affect how e-mailing works are:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = '<insert username>'
EMAIL_HOST_PASSWORD = '<insert password>'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = '[email protected]'
SERVER_EMAIL = '[email protected]'
The Site configuration also plays a role because it defines the domain name associated with the web site. The site domain name and a human-readable name of the web site are defined in the settings by:
CODALAB_SITE_DOMAIN = 'codalab.org'
CODALAB_SITE_NAME = 'CodaLab'
The 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 e-mail sent to a user resetting his password:
Subject: [CodaLab] Password Reset E-mail
From: [email protected]
To: [email protected]
Date: Thu, 03 Oct 2013 22:42:55 -0000
You're receiving this e-mail because you or someone else has requested a password
for your user account at codalab.org. It can be safely ignored if you did not request
a password reset. Click the link below to reset your password.
http://codalab.org/accounts/password/reset/key/1-3le-6640241efe4e5b77f4e5/
In case you forgot, your username is someuser.
Thanks for using our site!
The subject field of the e-mail uses the verbase name of the site, while the body of the e-mail includes several references to codalab.org
which is given by the site's domain name.
As noted in the Django documentation, one can avoid sending e-mails 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 Dev
configuration.