从docker容器中的Django发送电子邮件
我已经在docker容器中部署了一个现有的应用程序。电子邮件服务现在不再工作了 我已经暴露了电子邮件服务器端口(587),但仍然无法工作 这是我的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"
# 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