Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
Python 向同一电子邮件发送电子邮件的联系方式-Django_Python_Django_Email_Django Forms - Fatal编程技术网

Python 向同一电子邮件发送电子邮件的联系方式-Django

Python 向同一电子邮件发送电子邮件的联系方式-Django,python,django,email,django-forms,Python,Django,Email,Django Forms,因此,我正在构建一个包含三个部分的网页,其中一个部分包含一个联系人表单,供用户向我的电子邮件发送消息(email\u HOST\u USERinsettings.py)。但是send_mail(主题、消息、email_from、[email_to、],fail_silent=False)仅对发送者和接收者部分使用email_HOST_USER,并从和向该电子邮件发送电子邮件。我不知道我错过了什么 这是密码,提前谢谢你 views.py from django.shortcuts import r

因此,我正在构建一个包含三个部分的网页,其中一个部分包含一个联系人表单,供用户向我的电子邮件发送消息(
email\u HOST\u USER
in
settings.py
)。但是
send_mail(主题、消息、email_from、[email_to、],fail_silent=False)
仅对发送者和接收者部分使用
email_HOST_USER
,并从和向该电子邮件发送电子邮件。我不知道我错过了什么

这是密码,提前谢谢你

views.py

from django.shortcuts import render
from django.http import HttpResponse
from hajar.settings import EMAIL_HOST_USER
from django.core.mail import send_mail
from .forms import ContactForm 

def base_view(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            subject = "Hello"
            name   = form.cleaned_data['name']
            email_from =  form.cleaned_data['email']   
            email_to = EMAIL_HOST_USER   
            message= form.cleaned_data['message']
            send_mail(subject, message, email_from, [email_to,], fail_silently=False)
            return HttpResponse(f'Thank you for your message, {name}!')
    form = ContactForm()
    return render(request, 'base.html', {'form': form})
设置.py

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
forms.py

from django import forms

class ContactForm(forms.Form):
    name    = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'mdl-textfield__input required', 'id':'name'}))
    email   = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'mdl-textfield__input required', 'id':'email'}))
    message = forms.CharField(widget=forms.Textarea(attrs={'class':'mdl-textfield__input required', 'id':'textarea'}))

您应该使用
EmailMessage
类向其他电子邮件发送回复

email = EmailMessage(
    subject=subject,
    body=message,
    from_email=email_from,
    to=[email_to],
    reply_to=[email_from],
)

email.send()

您正在向电子邮件主机用户发送电子邮件
email\u to=email\u HOST\u USER
感谢您的回答,但我想让人们通过联系人表单向我发送电子邮件。我认为将email_设置为=form.cleaned_data['email']可以用作订阅列表,因为我是发送电子邮件的人。@Hajar您不可能这么做。您正在服务器上使用您的电子邮件帐户的SMTP凭据,如何将其他人的电子邮件帐户/地址用作发件人?您可以做的是,将电子邮件中的
reply_设置为
标题,以便在完成后将回复发送给真正的收件人。为此,您应该使用EmailMessage类。请更新答案。哦,哇!它正在工作。我知道我在做一些愚蠢的事情,但我不知道EmailMessage类,到目前为止,我看过的教程中没有一个提到过它。非常感谢你,真的。