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
insettings.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类,到目前为止,我看过的教程中没有一个提到过它。非常感谢你,真的。