【问题标题】:Create a basic contact form that send a mail创建发送邮件的基本联系表单
【发布时间】:2019-05-27 05:22:03
【问题描述】:

我有一个已经设计好的表单模板(使用 bootstrap-studio)。 我只需要从中获取数据并将其作为邮件发送到我的电子邮件 ID。 如果页面可以在按下提交后被重定向到一个新的页面,那就太好了。

我已经设置了 settings.py 并且能够发送表单的“消息”部分。

    if request.method == 'POST':
        message = request.POST['message']

        send_mail(
            'Contact Form',
            message,
            settings.EMAIL_HOST_USER,
            ['abcd@gmail.com'],
            fail_silently=False

        )
    return render(request, 'contact.html')

我需要的是能够发送一封带有'message'、'name'、'email'的电子邮件, 包含在里面。

我试着写了

message = request.POST['message','name','email']

没有得到预期的结果。

contact.html:

        <form method="post">
            {% csrf_token %}
            <h2 class="text-center">Contact us</h2>
            <div class="form-group"><input class="form-control" type="text" name="name" placeholder="Name"></div>
            <div class="form-group"><input class="form-control " type="email" name="email" placeholder="Email"></div>
            <div class="form-group"><textarea class="form-control" name="message" placeholder="Message" rows="14"></textarea></div>
            <div class="form-group"><button class="btn btn-primary" type="submit">send </button></div>
        </form>
    </div>

【问题讨论】:

  • 所以你想获得用户输入。电子邮件、姓名、消息?请编辑帖子并添加html表单
  • 立即查看@Ahmed

标签: django django-forms django-templates django-views bootstrap-studio


【解决方案1】:

要从表单中获取数据,您必须单独进行。

message = request.POST["message"]
name = request.POST["name"]
email = request.POST["email"]

然后您可以使用这些数据作为参数传递给 send_mail() 函数。 要在提交表单后重定向到另一个页面,请使用以下逻辑:

from django.shortcuts import redirect

    if request.method == 'POST':
        message = request.POST['message']
        name = request.POST["name"]
        email = request.POST["email"]

        send_mail(
            'Contact Form',
            message,
            settings.EMAIL_HOST_USER,
            [email,],
            fail_silently=False

        )
        return redirect("/home/")
    return render(request, 'contact.html')

【讨论】:

  • 如何将所有三个数据作为参数传递给 send_mail()??
  • @AdityaKakoti send_mail() 它需要很多参数 send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None) Django documentation here
猜你喜欢
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多