在 docker 容器中从 Django 发送电子邮件

时间:2021-04-08 09:26:32

标签: django docker

我已经在 docker 容器中部署了一个现有的应用程序。电子邮件服务现在可以正常工作了。

我已经暴露了电子邮件服务器端口 (587),但仍然无法正常工作。

这是我的 Django 电子邮件配置:

# EMAIL handler
EMAIL_HOST = "smtp.office365.com"
EMAIL_PORT = 587
EMAIL_HOST_USER = "email@email.com"
EMAIL_HOST_PASSWORD = "pssword"

这些是我的容器暴露端口:

docker run -d -p 8001:8020 -p 587:587  --name ...
587/tcp -> 0.0.0.0:587
8020/tcp -> 0.0.0.0:8001

我已尝试对其进行调试,但它卡在电子邮件发送操作中,并且没有检索到任何内容。

有人知道我做错了什么吗? 更新:

Dockerfile

# Dockerfile

FROM python:3.7-buster

# install nginx
RUN apt-get update 
# copy source and install dependencies
RUN mkdir -p /opt/app
RUN mkdir -p /opt/app/pip_cache
RUN mkdir -p /opt/app/djsr
COPY requirements.txt  /opt/app/
# COPY .pip_cache /opt/app/pip_cache/
COPY . /opt/app/
WORKDIR /opt/app
RUN pip install -r requirements.txt --cache-dir /opt/app/pip_cache
RUN yes yes | python manage.py collectstatic 
# RUN chown -R www-data:www-data /opt/app

# start server
EXPOSE 8020
STOPSIGNAL SIGTERM
CMD gunicorn django_react.wsgi:application  --user www-data --bind 0.0.0.0:8020 --workers 8 --timeout 400


1 个答案:

答案 0 :(得分:1)

尝试添加这些行:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True