如何解决如何在 Django 中发送带有表单上下文的电子邮件
我在索引页中有一个表单,表单中有 12 个输入,所以如果用户提交表单,我需要在我的电子邮件正文中输入所有 12 个输入。 我尝试了不同的方法并尝试在 google 和 youtube 上搜索,但找不到解决方案。
我的urls.py:
from django.contrib import admin
from django.urls import path,include
from . import views
urlpatterns = [
path('',views.index,name='index'),path('about/',views.about,name='about'),path('contact/',views.contact,name='contact'),]
我的views.py:
from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail
def index(request):
if request.method == "POST":
year = request.POST['year']
make = request.POST['make']
part = request.POST['part']
engine = request.POST['engine']
transmission = request.POST['transmission']
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
state = request.POST['state']
zipcode = request.POST['zipcode']
address = request.POST['address']
form = "Year: " + year + "Make: " + make + "Part: " + part + "Engine: " + engine + "transmission: " + transmission + "Name: " + name + "Email: " + email + "Phone: " + phone + "State: " + state + "Zipcode: " + zipcode + "Address: " + address
send_mail(
'Mail from carparts',form,'arshadkhanak05@gmail.com.',['arshadkhanak05@gmail.com'],fail_silently=False,)
return render(request,'index.html')
def about(request):
return render(request,'about.html')
def contact(request):
return render(request,'contact.html')
谢谢
解决方法
尝试使用 EmailMultiAlternatives :
from django.core.mail.message import EmailMultiAlternatives
from django.template.loader import render_to_string
def index(request):
if request.method == "POST":
year = request.POST['year']
make = request.POST['make']
part = request.POST['part']
engine = request.POST['engine']
transmission = request.POST['transmission']
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
state = request.POST['state']
zipcode = request.POST['zipcode']
address = request.POST['address']
email_template = render_to_string('index_email.html',{"Year": year,"Make": make,"Part": part,"Engine":engine,....})
send_email = EmailMultiAlternatives(
"Mail from carparts",None,settings.EMAIL_HOST_USER,['arshadkhanak05@gmail.com'],)
send_email.attach_alternative(email_template,'text/html')
send_email.send()
return render(request,'index.html')
创建 index_email.html
并获取所有上下文。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。