django - 在 docker 容器中从 Django 发送电子邮件
问题描述
我已经在 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
推荐阅读
- xamarin.forms - 具有 ReactiveUI 的 Xamarin 表单 - 对 xaml.g.cs 的更改丢失,由 ReactiveUI 错误引起
- android - frida:java.lang.ClassCastException: java.lang.Object[] 无法转换为 android.content.Intent[]
- spring-batch - 如何在春季批处理中制作非阻塞项目处理器(不仅与TaskExecuter异步)?
- css - 来自父母的硒 css 来定位孩子
- flutter - Flutter TextField被键盘覆盖,我不能使用resizeToAvoidBottomInset = true
- excel - 在excel中锁定形状文本
- python - Kivy Widgets 不显示
- javascript - 如何获取每个对象键的 id
- docker - 在 kubernetes 从站中运行的无根目录,“docker run”失败
- api - 如何使用 JSON API 将对象从谷歌云存储下载到本地目录