Django 不在远程服务器上发送电子邮件

时间:2021-02-23 10:22:42

标签: django email

当用户在我的网站上填写表单时,我尝试发送电子邮件。 一切都在我的本地服务器上运行,信件已发送。 在具有相同设置的远程 timeweb.com 服务器上,不会发送信件,而我收到了信件。 试过 DEBUG = False 和 True 我尝试了不同的邮件服务:gmail、mail、yandex、timeweb 邮件。 在 gmail 中包含“可以访问该帐户的不可靠应用程序”。 我在这里包括了 https://accounts.google.com/DisplayUnlockCaptcha 没有任何帮助。

谁知道,请告诉我在哪里挖。

'setting.py'

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST_USER = "email@gmail.com"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_PASSWORD = "Your_Password"

3 个答案:

答案 0 :(得分:0)

我正在使用这种电子邮件发送情况。这是我的项目。我在 https://www.youtube.com/watch?v=UH8oHNDfTyQ 中看到了这个方法。如果你想查看这个 url,它在你的项目中工作。

'setting.py'
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST_USER = "siberlab01@gmail.com"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_PASSWORD = "Your_Password"

答案 1 :(得分:0)

你能在你的终端屏幕上写'python manage.py shell'吗? 之后

  1. 'from django.core.mail import send_mail' 输入
  2. send_mail('django test mail', 'this is django','siberlab01@gmail.com', ['siberlab01@gmail.com'], fail_silently = False )

在第 2 部分更改您的 Gmail 帐户。如果你尝试这个实现,你能写出你看到的是哪个数字吗? 如果此数字为 0,请将 fail_silently 部分更改为 true。如果您再次看到 0 数字,则这不再起作用。

我的回答是相同的配置。看我的头像。

enter image description here

答案 2 :(得分:0)

当我研究你的错误 ValueError: EMAIL_USE_TLS/EMAIL_USE_SSL ....., 我找到另一个电子邮件发送代码。我建议您阅读此链接 SMTP issue in Django web application。你可以试试这个吗:

import smtplib

def sendEmail():

    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login('yourEmailAddress@gmail.com', 'yourEmailPassword')

    try:
        server.sendmail('yourEmailAddress@gmail.com', 'emailAddressBeingSentTo', 'messageBeingSent')
    except:
        print('An error occurred when trying to send an email')

    server.quit()