diff --git a/Dockerfile b/Dockerfile
index 00644437ab5dffa9b97f8a27377b962a7166bfca..81f607d7a7971d6fc26d7bf9cf7bef6a998e4ae4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -95,6 +95,8 @@ RUN DJANGO_SETTINGS_MODULE=${SETTINGS_MODULE} \
     LVALERT_OVERSEER_PORT=2 \
     DJANGO_TWILIO_ACCOUNT_SID=fake_sid \
     DJANGO_TWILIO_AUTH_TOKEN=fake_token \
+    AWS_SES_ACCESS_KEY_ID=fake_aws_id \
+    AWS_SES_SECRET_ACCESS_KEY=fake_aws_key \
     python manage.py collectstatic --noinput
 
 RUN rm -rf /app/logs/* /app/project_data/*
diff --git a/config/settings/base.py b/config/settings/base.py
index ec4caa6519500c0d463897603444150c1043ec88..2aff59eb1fbc47949714a90ef65f1f8266fa7111 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -337,6 +337,7 @@ SITE_ID=1
 INSTALLED_APPS = [
     'django.contrib.auth',
     'django.contrib.admin',
+    'django_ses',
     'django.contrib.contenttypes',
     'user_sessions',
     'django.contrib.sites',
diff --git a/config/settings/container/base.py b/config/settings/container/base.py
index 545ec21ddd845e3be3e7496e21f3bc4fd65ca179..6836614f4acbc500dcd0c0cc56407d302f9dfe62 100644
--- a/config/settings/container/base.py
+++ b/config/settings/container/base.py
@@ -62,15 +62,15 @@ if TWILIO_AUTH_TOKEN is None:
     raise ImproperlyConfigured('Could not get Twilio auth token from envvars.')
 
 # Get email settings from environment
-EMAIL_PORT = 587
-EMAIL_USE_TLS = True
-EMAIL_HOST = os.environ.get('SMTP_HOST', 'localhost')
-EMAIL_HOST_USER = os.environ.get('SMTP_USERNAME', '')
-EMAIL_HOST_PASSWORD = os.environ.get('SMTP_PASSWORD', '')
-ALERT_EMAIL_FROM = os.environ.get('DJANGO_ALERT_EMAIL_FROM', None)
-if ALERT_EMAIL_FROM is None:
-    raise ImproperlyConfigured(
-        "Could not get 'alert from email' from envvars.")
+EMAIL_BACKEND = 'django_ses.SESBackend'
+AWS_SES_ACCESS_KEY_ID = get_from_env('AWS_SES_ACCESS_KEY_ID')
+AWS_SES_SECRET_ACCESS_KEY = get_from_env('AWS_SES_SECRET_ACCESS_KEY')
+AWS_SES_REGION_NAME = get_from_env('AWS_SES_REGION_NAME',
+    default_value='us-west-2', fail_if_not_found=False)
+AWS_SES_REGION_ENDPOINT = get_from_env('AWS_SES_REGION_ENDPOINT',
+    default_value='email.us-west-2.amazonaws.com', fail_if_not_found=False)
+ALERT_EMAIL_FROM = get_from_env('DJANGO_ALERT_EMAIL_FROM')
+
 
 # Database settings -----------------------------------------------------------
 DATABASES = {
diff --git a/requirements.txt b/requirements.txt
index d5f2aa8c496205a2b58e1b382b63b793c6cf7b97..fc1f3f7fb3f9afdbbe4057bfa8e941320be61531 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,6 +4,7 @@ django-debug-toolbar==1.9.1
 django-extensions==2.0.5
 django-guardian==1.4.9
 django-model-utils==3.1.1
+django-ses
 django-silk==3.0.1
 django-twilio==0.9.0
 django-user-sessions==1.6.0
@@ -35,3 +36,4 @@ twilio==6.10.3
 # https://github.com/etingof/pyasn1/issues/112
 pyasn1==0.3.6
 pyasn1-modules==0.1.5
+pytz==2018.9