0

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

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

  1. 从主题行中删除“另一个”。
  2. 将 FROM 设置为发送电子邮件的人
  3. 保留电子邮件正文中的所有文本(html 或纯文本)。
  4. 保留原始电子邮件中的所有附件。

听起来很简单,但我在发送多个附件时遇到了问题。而且,我什至没有试图弄清楚#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 地址。那应该可以解决这个问题,但是,如果您有任何建议,我们将不胜感激。

谢谢

4

0 回答 0