Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';获取已发送电子邮件的MessageID的最简单/最干净的方法是什么?_Python_Django_Email Headers - Fatal编程技术网

Python 什么';获取已发送电子邮件的MessageID的最简单/最干净的方法是什么?

Python 什么';获取已发送电子邮件的MessageID的最简单/最干净的方法是什么?,python,django,email-headers,Python,Django,Email Headers,我想保存已发送电子邮件的MessageID,以便以后可以在References:header中使用它,以方便线程处理 我看到在root/django/trunk/django/core/mail.py(第55行)中创建了MessageID 我正在尝试寻找收集该值的最佳方法,而不仅仅是复制/粘贴到新的后端模块并返回它。也许这是最好的方法?好的,我看到我在浏览悲惨的旧代码。我应该能够调用django.core.mail.message.make_msgid()并在调用send之前自己填充标头。并非所

我想保存已发送电子邮件的MessageID,以便以后可以在References:header中使用它,以方便线程处理

我看到在root/django/trunk/django/core/mail.py(第55行)中创建了MessageID


我正在尝试寻找收集该值的最佳方法,而不仅仅是复制/粘贴到新的后端模块并返回它。也许这是最好的方法?

好的,我看到我在浏览悲惨的旧代码。我应该能够调用django.core.mail.message.make_msgid()并在调用send之前自己填充标头。

并非所有后端都支持断言消息id(例如,SES设置自己的消息id并在发送响应中返回)。如果使用较新的(circa 1.1?)类,您实际上可以提取返回/生成/设置的消息id。您可以在调用.send()后从实例中提取返回的消息id,例如:


欢迎来到堆栈溢出。既然您已经解决了问题,并记录了答案,请接受该答案作为您问题的答案。这样其他居民就知道你在这个问题上不需要任何帮助。当收件人列表有很多电子邮件ID时,它是如何工作的。我们应该为不同的收件人获取不同的邮件id。多个收件人都将具有相同的邮件id,因为您不(即使在SMTP级别)创建多封邮件,而是创建一封邮件,并且SMTP协议将处理将该邮件复制到多个收件人的操作。我已经用SES进行了测试并确认。我无法使EmailMessage正常工作,变量中没有message_id。我转到了boto,它正确地返回message_id,并且(message_id,email)是我的唯一密钥。但是我失去了使用SMTP而不是使用API的效率。Django设置不起作用,返回的id为
None
。Django中包含的邮件后端的当前代码中没有任何内容可以处理邮件id。除了第三方后端外,这不应该起作用
e=EmailMessage(
            subject,
            content,
            from_email,
            recipient_list,
            headers = headers,
        )
 e.send()
 message_id = e.extra_headers.get('Message-Id',None)