如何使用google smtp服务器从django发送电子邮件?

时间:2013-04-13 07:00:44

标签: django google-app-engine smtp

我在看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/

2 个答案:

答案 0 :(得分:11)

如果不提供auth_information即gmail密码,则无法使用smpt.gmail.com

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

中加入此local_settings

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'

答案 1 :(得分: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相关联。对于该功能,请在您的域名提供商处寻求帮助或在互联网上查看信息:

希望它有所帮助, 欢呼声。