在Django中通过微软交换服务器发送邮件是否可行?

3 投票
4 回答
6589 浏览
提问于 2025-04-16 16:38

如果是的话,怎么做呢?我在谷歌上找不到任何相关的信息。

4 个回答

0

这是我的settings.py文件的样子,它可以正常工作。

# Email Backend Service
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'yourexchangservername'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

# Use environment variables for sensitive information
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
DEFAULT_FROM_EMAIL = os.environ.get('DEFAULT_FROM_EMAIL')
1

在Exchange上使用SMTP和其他邮件服务器其实没什么不同。你可能会遇到一个问题,就是不允许匿名访问来进行邮件转发。如果只启用了集成认证,可以看看这个链接;

使用Python通过Exchange进行集成Windows认证(NTLM)的SMTP

另外,确保Django服务器的IP地址被添加到Exchange的转发IP列表中(如果这个功能是启用的)。

2

如果还有人需要帮助的话……我花了一些时间才搞明白在默认的MSE配置中,EMAIL_HOST这个设置应该是什么。

EMAIL_HOST = 'outlook.office365.com'
EMAIL_HOST_USER = user@yourdomain.com
EMAIL_HOST_PASSWORD = Y0urP@$$w0rd
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

以上的配置在我这里使用Django的默认邮件后台运行得很好。

撰写回答