MIME Headers Not Making it Through Gmail API

前端 未结 2 600
花落未央
花落未央 2020-12-06 19:12

I\'m trying to automate the creation of drafts via the Gmail API, and I want these drafts to be responses to existing emails. To do this, I believe I need to set the \"threa

2条回答
  •  隐瞒了意图╮
    2020-12-06 19:24

    Actually, it's a lot simpler than that! If you just supply the correct Subject in the headers, and the correct threadId in the body, Google will calculate all the references for you.

    new = MIMEText("This is the placeholder draft message text.")
    new["Subject"] = "Example Mail"
    new["To"] = "emtholin@gmail.com"
    new["From"] = "emtholin@gmail.com"
    
    raw = base64.urlsafe_b64encode(new.as_string())
    message = {'message': {'raw': raw, 'threadId': "14ec598be7f25362"}}
    draft = service.users().drafts().create(userId="me", body=message).execute()
    

    This results in a draft, ready to be sent in the correct thread:

    Then, I send the mail. As you can see, the references are calculated for you:

    MIME-Version: 1.0
    Received: by 10.28.130.132 with HTTP; Sat, 25 Jul 2015 07:54:12 -0700 (PDT)
    In-Reply-To: 
    References: 
        
    Date: Sat, 25 Jul 2015 16:54:12 +0200
    Delivered-To: emtholin@gmail.com
    Message-ID: 
    Subject: Example Mail
    From: Emil Tholin 
    To: Emil Tholin 
    Content-Type: text/plain; charset=UTF-8
    
    This is the placeholder draft message text.
    

提交回复
热议问题