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

从docker容器中的Django发送电子邮件,django,docker,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容器中部署了一个现有的应用程序。电子邮件服务现在不再工作了

我已经暴露了电子邮件服务器端口(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



尝试添加以下行:

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

非常感谢,但还是一样的问题。我认为这是一个集装箱问题。我正在运行另一个node.JS应用程序,它在容器中部署后面临同样的问题…它在本地工作吗?检查主机服务器上的587端口是否打开。它已打开。它正在本地工作
sudo netstat-ntlp | grep 587 tcp6 0:::587::*侦听3934/docker proxy
尝试从容器连接<代码>nc-vz smtp.office365.com 587