【问题标题】:How can I send e-mail from django using the google smtp server?如何使用 google smtp 服务器从 django 发送电子邮件?
【发布时间】: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/

【问题讨论】:

    标签: django google-app-engine smtp


    【解决方案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 中查找信息:

    希望对你有帮助, 干杯。

    【讨论】:

      【解决方案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'
      

      【讨论】:

        猜你喜欢
        • 2015-06-19
        • 1970-01-01
        • 2015-11-24
        • 2021-10-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        相关资源
        最近更新 更多