如何在Django中使用Google SMTP服务器发送电子邮件?

12
我正在查看https://docs.djangoproject.com/en/dev/topics/email/
我的问题是,有没有办法在不进行身份验证的情况下使用smtp.google.com,或者不必将我的auth信息放入settings.py或django.core.mail.send_mail函数的参数中?
此时,我正在寻找在django上使用smtp.google.com的最佳实践,我了解还有更好的解决方案,例如http://sendgrid.com/
2个回答

11

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

但是,您可以将您的auth信息放在local_settings.py文件中,并且不将此文件添加到版本控制中,这样除了您以外的任何人都无法看到此文件。将此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'

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关联起来。如果需要此功能,请向你的网域提供商寻求帮助或在互联网上查找相关信息: 希望对你有所帮助,祝好!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接