我目前正在Django中为我的网站建立联系表单。 唯一的问题是,提交表单时未发送电子邮件。 这是代码:
settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = "c******o@gmail.com"
EMAIL_HOST_PASSWORD = '****'
EMAIL_PORT = '587'
views.py:
sender_name = form.cleaned_data['nome_completo']
sender_email = form.cleaned_data['email']
message = "{0} has sent you a new message:\n\n{1}".format(sender_name, form.cleaned_data['messaggio'])
send_mail('New Enquiry', message, sender_email, ['c******o@gmail.com'])
我的想法: 由于我在virtualenv中,因此当我提交表单时,终端会显示该表单已成功提交,并让我返回正确的代码,也许因此未发送电子邮件,或者可能是因为我使用的是gmail帐户?谢谢!
答案 0 :(得分:1)
由于您使用的是SMTP服务器,为什么不使用以下后端:
django.core.mail.backends.smtp.EmailBackend
此外,如果您使用的是Gmail,请确保以下几点:
app
密码。您可以在Google帐户页面的“安全性”标签上找到这些信息:
答案 1 :(得分:1)
所以问题出在EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
这会将电子邮件输出到控制台进行调试,而不是实际发送电子邮件。 (请参见https://docs.djangoproject.com/en/3.1/topics/email/#console-backend)
请勿将EMAIL_BACKEND
设置为任何用于生产的内容,因为它的默认值为django.core.mail.backends.smtp.EmailBackend
。然后,您的EMAIL_HOST设置将生效,并且应该发送电子邮件。