代码之家  ›  专栏  ›  技术社区  ›  mike-gallego

将HTML表单发送到Django项目中的电子邮件地址的最佳方法?

  •  0
  • mike-gallego  · 技术社区  · 7 年前

    我在几乎所有的网站上都看到了联系人表单,它们使之看起来很简单。阅读如何做似乎很复杂,特别是因为大多数解决方案都使用PHP和服务器。我不太懂PHP,而且我的项目中已经有四种语言了,而且它变得非常强大。我想要一些简单的东西;填写细节,发送到电子邮件,然后完成。

    填写姓名:John Doe
    填写出生日期:2018年6月11日
    [提交](发送至example@example.com)

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ralf    7 年前

    下面是如何实现这一目标的基本概述。

    使用包含详细信息的表单:

    from django import forms
    class ContactForm(forms.Form):
        name = ...
        birht_date = ...
    

    在视图中使用此表单,可能使用 FormView 以下内容:

    from django.conf import settings
    from django.core.mail import send_mail
    from django.views.generic.edit import FormView
    
    class ContactView(FormView):
        form_class = ContactForm
        success_url = '/thanks/'
    
        def form_valid(self, form):
            # here you send the email
            send_email(
                sub='New contact: {}'.format(form.cleaned_data['name']),
                msg='This new contact was born  {}'.format(form.cleaned_data['birth_date']),
                from=settings.SERVER_EMAIL,
                to='example@example.com')
    
            return super().form_valid(form)
    

    也许这会让你找到解决问题的正确途径。