【问题标题】:Send email to address getting from HTML input via Django通过 Django 向从 HTML 输入中获取的地址发送电子邮件
【发布时间】:2019-12-13 14:30:55
【问题描述】:

我花了好几个小时寻找这个问题的解决方案,但找不到任何相关的东西。我想从输入中获取用户的电子邮件并将邮件从管理员发送到该电子邮件地址。这是我的代码:

views.py:

def index(request): 
    context = {
        'questions': Question.objects.all(),
        'applicants':  Applicant.objects.filter(status=1),
        'empty_cards': range(4 - Applicant.objects.filter(status=1).count())
    }

    if request.method == "POST":
        if request.POST.get('message_text'):
          Message.objects.create(
              sender_name = request.POST.get('sender_name'),
              sender_email = request.POST.get('sender_email'),
              message_text = request.POST.get('message_text'))

    if request.method == 'POST':
        subject = 'Welcome !'
        message = 'We will back to you.'
        from_email = settings.EMAIL_HOST_USER
        recipient_list = 'don't know how to get email'
        send_mail(subject, message, from_email, recipient_list)

    return render(request, 'index.html', context)

【问题讨论】:

  • 哪些表单字段包含收件人电子邮件地址?
  • @schillingt <input type="email" name="sender_email"/>
  • 您要向发件人的邮箱发送邮件吗?
  • @schillingt,是的...

标签: python django email


【解决方案1】:

根据您的代码,我假设您已经可以访问用户的邮件 在请求中。

所以你可以试试这个:

sender_email = sender_request.POST.get('sender_email')
recipient_list = [sender_email]

【讨论】:

  • 虽然这可能会解决问题 - 最好在解决方案中包含解释。
  • 在 html 中,元素的名称是您如何访问用户发布的表单数据的方式。 @vino 刚刚告诉您在何处以及如何访问特定字段。我想您的下一个问题是如何从管理员用户发送电子邮件?
  • @srvqaqa 抱歉,我不是故意的。我的目的是隔离您的问题(如果有的话),并在我确认您的需求后提供解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
  • 2014-04-11
  • 2014-12-10
  • 2016-08-26
  • 1970-01-01
  • 2016-11-04
相关资源
最近更新 更多