Send_mail (smtp) из docker-compose (django + nginx + gunicorn)

Я пытаюсь отправить электронную почту через Django. Письмо должно быть отправлено пользователю, который зарегистрируется в нашей системе с помощью Gmail.

Я также использую docker-compse django, nginx, gunicorn и postgres.

Это мои конфигурации электронной почты внутри django.

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

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = '587'
EMAIL_USE_TLS = True

EMAIL_HOST_USER = get_secret("EMAIL_HOST_USER")
EMAIL_HOST_PASSWORD = get_secret("EMAIL_HOST_PASSWORD")
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

и docker-compose

version: '3.7'

services:
  web:
    build: 
      context: ./dj-psych
      dockerfile: Dockerfile.prod
    command: gunicorn config.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - static_volume:/home/app/web/static/
      - media_volume:/home/app/web/media/
    expose:
      - 8000
    env_file:
      - ./.env.prod
    depends_on:
      - db
  db:
    image: postgres:13.0
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env.prod.db
  nginx:
    build: ./nginx
    volumes:
      - static_volume:/home/app/static
      - media_volume:/home/app/static
    ports:
      - server-port:80
    depends_on:
      - web

volumes:
  postgres_data:
  static_volume:
  media_volume:
<
upstream config {
    server web:8000;
}

server {

    listen 80;

    location / {
        proxy_pass http://config;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

    location /static/ {
        alias /home/app/static/;
    }

    location /media/ {
        alias /home/app/media/;
    }
}

Я думаю, что порт smtp-сервера (586) должен быть открыт в docker.

Попробовал связать порт web и nginx. Но у меня не получается.

как я могу это сделать?

Я пытался.

from django.core.mail import EmailMessage
email = EmailMessage('subject', 'body', to=['yj.jeon.gn@gmail.com'])
email.send()

Это сообщение об ошибке

OSError: [Errno 99] Cannot assign requested address
Вернуться на верх