为什么回复我的SMTP发送的gmail消息没有线程?

Mic*_*ach 8 python gmail imap imaplib

我使用以下Python片段通过SMTP发送大量类似的电子邮件:

def send(from_, to, body):
  server = smtplib.SMTP('smtp.gmail.com:587')
  server.ehlo()
  server.starttls()
  server.ehlo()
  server.login('michael@gmail.com', password)
  msg = '''\
From: %s
To: %s
Subject: %s

%s''' % (from_, to.encode('utf-8'), "Hello", body.encode('utf-8'))
  server.sendmail(from_, to, msg)
  server.quit()
Run Code Online (Sandbox Code Playgroud)

这些消息是对话中的第一条消息.Strangley,对这些消息的回复没有被线程化到原始消息的对话上.

回复在我的收件箱中作为单独的邮件返回,主题="Re:Hello",与原始邮件无关.(很偶然一个被适当螺纹的,这甚至怪异.)

我已经验证这些(非线程)回复有一个References:字段,该字段引用已发送邮件的Message-ID字段,该字段由GMail自动生成.

知道我做错了什么吗?

Mic*_*ski 6

看看References:标题.它包含Message-ID:线程中前一个头文件的链,通常用于线程.指定Message-ID:自己通常是一个好主意,如果你跟踪以前使用的那些,你可以在References:标题中使用它们来强制执行线程.

Message-ID应是全局唯一的.它们通常被构造成这样的东西,但它不是必需的.

Message-ID: unixtimestamp.somerandomval@sending-hostname
Run Code Online (Sandbox Code Playgroud)