如何使用 google smtp 服务器从 django 发送电子邮件?
Posted
技术标签:
【中文标题】如何使用 google smtp 服务器从 django 发送电子邮件?【英文标题】:How can I send e-mail from django using the google smtp server? 【发布时间】:2013-04-05 19:08:02 【问题描述】:我在看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/
【问题讨论】:
【参考方案1】:尝试在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 中查找信息:
http://www.namecheap.com/support/knowledgebase/article.aspx/1244/78/ http://help.squarespace.com/customer/portal/articles/581494-how-do-i-set-up-google-apps-for-my-domain-希望对你有帮助, 干杯。
【讨论】:
【参考方案2】:如果不提供您的 auth_information(即您的 gmail 密码),您将无法使用 smpt.gmail.com
。
但是,您可以将您的身份验证信息放在local_settings.py
中,并且不要将此 local_settings 添加到版本控制中,这样除了您之外没有人会看到此文件。将此 local_settings 包含在您的 settings.py
中。
settings.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'
【讨论】:
以上是关于如何使用 google smtp 服务器从 django 发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章