问题描述
因此,我正在构建一个由三部分组成的网页,其中一部分包含用于用户将邮件发送到我的电子邮件的联系表单( settings.py
中的 EMAIL_HOST_USER
).但是 send_mail(主题,消息,email_from,[email_to,],fail_silently = False)
仅对发件人和收件人部分使用 EMAIL_HOST_USER
,并且它从并发送至该电子邮件.而且我无法弄清楚我在这里缺少什么.
So I am building a three-section webpage and one of these sections contains a contact form for users to send messages to my email (EMAIL_HOST_USER
in settings.py
). But send_mail(subject, message, email_from, [email_to,], fail_silently=False)
is only using EMAIL_HOST_USER
for both the sender and the recipient parts and it sends the email from and to that email. And I can't figure out what I am missing here.
这是代码,在此先感谢您.
Here's the code and thank you in advance.
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})
settings.py
settings.py
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
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
类向其他电子邮件发送回复.
You should use EmailMessage
class for sending replies to other emails.
email = EmailMessage(
subject=subject,
body=message,
from_email=email_from,
to=[email_to],
reply_to=[email_from],
)
email.send()
这篇关于联系表单,用于在同一电子邮件之间发送电子邮件以及向同一电子邮件发送电子邮件-Django的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!