12

我正在查看https://docs.djangoproject.com/en/dev/topics/email/

我的问题是,有没有办法我可以在没有身份验证的情况下使用 smtp.google.com,或者不必将我的身份验证信息放入 settings.py 或作为 django.core.mail.send_mail 函数中的参数?

此时我正在寻找在 django 上使用 smtp.google.com 的最佳实践,我知道有更好的解决方案,例如http://sendgrid.com/

4

2 回答 2

11

smpt.gmail.com如果不提供您的 auth_information 即您的 gmail 密码,您将无法使用。

但是,您可以将您的身份验证信息放在 a 中local_settings.py,并且不要在版本控制中添加这个 local_settings,这样除了您之外没有人会看到这个文件。将此 local_settings 包含在您的settings.py.

设置.py

 ...
 EMAIL_HOST = 'smtp.gmail.com'
 EMAIL_PORT = 587
 EMAIL_USE_TLS = True
 ...
 ...
 from local_settings import *

local_settings.py

EMAIL_HOST_USER = 'user@gmail.com'
EMAIL_HOST_PASSWORD = 'yourpassword'
于 2013-04-14T19:11:26.503 回答
9

尝试将其包括在settings.py

# Email configuration.

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'user@domain.com'
EMAIL_HOST_PASSWORD = 'yourpassword'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'user@domain.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

如果您有网络域提供商(例如 namecheap、godady 等),您可以将您的域 (mycompany.com) 与 Gmail 相关联。对于该功能,请向您的域提供商寻求帮助或在 Internet 中查看信息:

希望有帮助,加油。

于 2013-04-13T13:50:08.947 回答