微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Django 中发送带有表单上下文的电子邮件

如何解决如何在 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 举报,一经查实,本站将立刻删除。