Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django SMTPDataError(553,b';不允许作为中继abc@email.com';)使用联系方式和Zoho邮件时_Django_Email - Fatal编程技术网

Django SMTPDataError(553,b';不允许作为中继abc@email.com';)使用联系方式和Zoho邮件时

Django SMTPDataError(553,b';不允许作为中继abc@email.com';)使用联系方式和Zoho邮件时,django,email,Django,Email,注意:-我已经检查了的问题和答案,并且我已经在我的设置中添加了默认的电子邮件,如下所述。现在,在我的联系方式中,我想从试图联系我的用户那里接收和发送电子邮件 嗨,我有一个内置Django的博客,它使用Zoho邮件发送激活和密码重置电子邮件。为了实现同样的功能,我在我的settings.py中添加了以下代码 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.zoho.com' EMAI

注意:-我已经检查了的问题和答案,并且我已经在我的设置中添加了默认的电子邮件,如下所述。现在,在我的联系方式中,我想从试图联系我的用户那里接收和发送电子邮件

嗨,我有一个内置Django的博客,它使用Zoho邮件发送激活和密码重置电子邮件。为了实现同样的功能,我在我的settings.py中添加了以下代码

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '<myadmin emailaddress>'
EMAIL_HOST_PASSWORD = '<myadmin password>'
DEFAULT_FROM_EMAIL = '<myadmin email address'
相同的视图为:-

def contact_us(request):
    if request.method == "POST":
        form = ContactForm(request.POST)
        if form.is_valid():
            sender_name = form.cleaned_data['name']
            sender_email = form.cleaned_data['email']
            message = f"{sender_name} has sent you a new message:\n\n{form.cleaned_data['message']}"
            send_mail('New Enquiry', message, sender_email, ['admin@saralgyaan.com'])
            return HttpResponse('Thanks for contacting us!')
    else:
        form = ContactForm()

    return render(request, 'accounts/contactus.html', {'form': form})
现在,当我添加电子邮件、消息和姓名时,出现以下错误:-

SMTPDataError at /contact/
(553, b'Relaying disallowed as uditvashisht@gmail.com')

您正试图让Zoho从其他人的电子邮件地址向您发送消息。这不起作用,原因有二:

  • Zoho(和任何著名的电子邮件提供商一样)不会让你假装来自其他人发送电子邮件。您只能从自己的帐户(或您与Zoho设置的域)发送电子邮件。这就是为什么会出现“不允许中继”错误的原因
  • 即使Zoho允许你从其他域发送电子邮件,它也会在接收端变成垃圾邮件(或者完全被阻止)。Gmail和大多数其他主要的电子邮件服务都有可用的信息,其中列出了来自其地址的电子邮件的来源。如果电子邮件来自其他地方,那就是垃圾邮件。你的Zoho帐户不在他们的名单上!(如果您对详细信息感兴趣,请搜索DMARC、DKIM和SPF。)
因此,您必须从自己的Zoho地址发送消息,而不是从联系人的电子邮件地址

联系人表单中的一个常见目标是能够轻松回复填写表单的人。如果您正试图这样做,那么实现这一点的方法就是
回复
电子邮件标题。您需要使用Django的类来包括
reply\u to
(注意它必须是一个列表,就像
to
):

从django.core.mail导入EmailMessage
#然后在表单视图中发送。。。
contact_name=form.cleaned_data['name']
contact_email=表单。已清理的_数据['email']
message=f“{contact_name}向您发送了一条新消息…”
email\u msg=EmailMessage(
主题‘‘新查询’,
body=消息,
来自admin@saralgyaan.com“,#在您的Zoho域中(从_电子邮件中省略使用默认_)
to=['admin@saralgyaan.com'],
回复地址=[联系电子邮件]#您希望回复的地址
电子邮件\u msg.send()

现在,当用户填写您的联系表单时,您将收到一封来自您自己的“新查询”电子邮件。如果您回复了询问,您的回复将转到联系人的电子邮件地址。

效果很好。。。谢谢。
SMTPDataError at /contact/
(553, b'Relaying disallowed as uditvashisht@gmail.com')