虽然我使用Mailgun作为我的SMTP网关,但这个问题特别涉及Django和表单 .
用户向something@mydomain.com发送电子邮件 . 主题以“另一个”开头 . 该邮件被MailGun拦截 . MailGun为我的代码创建一个POST . 我的代码应该接收该电子邮件并将其转发到another@mydomain.com(主题的第一个单词),其中包含以下要求:
-
从主题行中删除"another" .
-
将FROM设置为发送电子邮件的人员
-
保留电子邮件正文中的所有文本(html或plain) .
-
保留原始电子邮件中的所有附件 .
听起来很简单,但我遇到了发送多个附件的问题 . 而且,我甚至没有试图找出#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地址 . 这应该解决这个问题,但是,如果你有任何建议值得赞赏的话 .
谢谢