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

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

.env文件

  1. EMAIL_HOST=smtp.office365.com

字符串
settings.py

  1. EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
  2. EMAIL_HOST = env.str("EMAIL_HOST")
  3. EMAIL_PORT = 587
  4. EMAIL_USE_TLS = True
  5. EMAIL_HOST_USER = env.str("EMAIL_HOST_USER")
  6. EMAIL_HOST_PASSWORD = env.str("EMAIL_HOST_PASSWORD")
  7. SERVER_EMAIL = env.str("SERVER_EMAIL")
  8. DEFAULT_FROM_EMAIL = env.str("DEFAULT_FROM_EMAIL")


系统错误与

  1. ../3.10/lib/python3.10/socket.py", line 955, in getaddrinfo
  2. for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
  3. 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来解决这个问题。

  1. EMAIL_HOST = env("EMAIL_HOST")

字符串

相关问题