带有多个附件的电子邮件(来自POST)

时间:2014-06-11 12:36:20

标签: django django-views mailgun

虽然我使用Mailgun作为我的SMTP网关,但这个问题特别涉及Django和表单。

用户向something@mydomain.com发送电子邮件。主题从文本"另一个"开始。 该邮件被MailGun拦截。 MailGun为我的代码创建一个POST。 我的代码应该接收该电子邮件并将其转发到another@mydomain.com(该主题的第一个单词),并满足以下要求:

  1. 删除"另一个"来自主题。
  2. 将FROM设置为发送电子邮件的人
  3. 保留电子邮件正文中的所有文字(html或plain)。
  4. 保留原始电子邮件中的所有附件。
  5. 听起来很简单,但我遇到了发送多个附件的问题。而且,我甚至没有试图找出#1和#3。 (是的,我对此很新。)

    这是我到目前为止所做的:

    @public
    @csrf_exempt
    def send_email(request):
        if request.method == 'POST':
            mail_data = request.FILES
            sender    = request.POST.get('sender')
            subject   = request.POST.get('subject', '')
            bodyhtml   = request.POST.get('body-html', 'i am not found')
            mail = EmailMultiAlternatives(subject, bodyhtml, sender, ["another@mydomain.com"])
            for field, value in mail_data.items():
                mail.attach(value.name, value.read(), value.content_type)
            mail.content_subtype = "html"
            mail.send()
        else:
            # Just for my own testing.
        return HttpResponse('Not Posted')
    
        return HttpResponse('OK')
    

    你能帮我修改一下这样我可以附加多个文件吗?我可以弄清楚其他项目(但如果你有任何建议,将不胜感激)。我也知道任何人都可以发送电子邮件,这是一个安全风险。在实际发送任何电子邮件之前,我计划检查FROM地址。这应该解决这个问题,但是,如果你有任何建议值得赞赏的话。

    由于

0 个答案:

没有答案