邮件流量在 MailDev 容器和 Django 容器之间传递时出现 Errno 111 [拒绝连接]。

2024-04-29 16:48:30 发布

您现在位置:Python中文网/ 问答频道 /正文

MailDev容器和Django容器之间的邮件流量传递

[Errno 111] Connection refused

电子邮件流量到控制台后端工作,所以功能应该是正确的。在

send_mail(
            'Subject here',
            'Here is the message.',
            'from@example.com',
            ['to@example.com'],
            fail_silently=False
        )

在我切换到SMTP后端并在容器中启动MailDev之后,我得到了:

[Errno 111] Connection refused

在设置.py在

^{pr2}$

在Shell中:

sudo docker run -p 1080:80 -p 1025:25 --name maildev djfarrelly/maildev

我的Docker容器是:

CONTAINER ID        IMAGE                COMMAND                 CREATED             STATUS              PORTS                                        NAMES

a46040dd1259        djfarrelly/maildev   "bin/maildev --web..."   11 seconds ago      Up 9 seconds        0.0.0.0:1025->25/tcp, 0.0.0.0:1080->80/tcp   maildev

4fed036f92d4        exposee              "/usr/src/start.sh"      42 minutes ago      Up 42 minutes       0.0.0.0:8000->8000/tcp                       exposee

2c2cf7ce19e9        winauth              "gunicorn -b 0.0.0..."   43 minutes ago      Up 43 minutes       127.0.0.1:9876->9876/tcp                     winauth

afe4a449aa01        postgres             "docker-entrypoint..."   44 minutes ago      Up 44 minutes       127.0.0.1:5432->5432/tcp                     postgres

我的设置设置.py是:

EMAIL_HOST = CONFIG.get('EMAIL_HOST', '127.0.0.1')

EMAIL_PORT = CONFIG.get('EMAIL_PORT', 1025)

EMAIL_USE_TLS = CONFIG.get('EMAIL_USE_TLS', False)

EMAIL_USE_SSL = CONFIG.get('EMAIL_USE_SSL', False)

我在中的配置配置.json是:

"EMAIL_HOST": "127.0.0.1",

"EMAIL_PORT": 1025,

"EMAIL_USE_TLS": false,

"EMAIL_USE_SSL": false

Tags: configfalsehostsslgetuseportemail
1条回答
网友
1楼 · 发布于 2024-04-29 16:48:30

问题是您试图使用127.0.0.1从一个容器连接到另一个容器。如果此地址将与发送请求的容器对应,则这将不起作用。在

为了使容器能够相互通信,标准的方法是将容器连接到一个公共网络。在

sudo docker network create mail-net
sudo docker run  network main-net -p 1080:80 -p 1025:25  name maildev djfarrelly/maildev

将发送请求的容器连接到网络:

^{pr2}$

并将主机从127.0.0.1更改为maildev

EMAIL_HOST = CONFIG.get('EMAIL_HOST', 'maildev')
EMAIL_PORT = CONFIG.get('EMAIL_PORT', 25)

相关问题 更多 >