我已经在 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
答案 0 :(得分:1)
尝试添加这些行:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True