Django向smtp.office365.com发送邮件失败,提供[Errno 8] nodename或servname,或不知道

yftpprvb  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(129)

.env文件

EMAIL_HOST=smtp.office365.com

字符串
settings.py

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
    EMAIL_HOST = env.str("EMAIL_HOST")
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True
    EMAIL_HOST_USER = env.str("EMAIL_HOST_USER")
    EMAIL_HOST_PASSWORD = env.str("EMAIL_HOST_PASSWORD")
    SERVER_EMAIL = env.str("SERVER_EMAIL")
    DEFAULT_FROM_EMAIL = env.str("DEFAULT_FROM_EMAIL")


系统错误与

../3.10/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 8] nodename nor servname provided, or not known


奇怪的是,这个配置直到一周前才工作。该系统自3月以来一直很可靠,没有错误,就在上周,所有电子邮件都开始失败。从我的本地机器失败,从我的开发服务器失败,从我的prod服务器也失败,并且在2个月内没有代码推送到prod。所以O365一定发生了什么变化?我已经把我的邮件服务器改成了sendgrid,代码功能也很好。有没有人对如何进一步解决这个问题有任何建议?微软没用。说是我的DNS。这是不正确的,因为这是一台运行在Azure中的Linux机器,它将解析所有其他内容,包括端口587上的telnet到smtp.office365.com。

cbwuti44

cbwuti441#

我可以通过删除env.str(“EMAIL_HOST”)中的str来解决这个问题。

EMAIL_HOST = env("EMAIL_HOST")

字符串

相关问题