2016-07-19 11 views
0

Ich bin mit der Google Mail-API in Python arbeiten, eine Anfrage mit bekommen:GmailUserSocialAuth E-Mail-Nachricht gibt leere Nachricht hat aber Snippet

gmail_auth = GmailUserSocialAuth.objects.filter(uid='...')[0] 
response = gmail_auth.request('get', '...') 
data = response.json() 

response - gmail_auth.request('get', '/%s' % data['messages'][0]['id'] 
message = response.json() 

Als ich die Nachricht auszudrucken, bekomme ich große große Objekte mit allen Felder und so. Mit einem der Nachrichten, erhalte ich diese Antwort:

{ 
    ... # a lot of fields 
    u'sizeEstimate': 10100, 
    'html_body': '', 
    'decoded_body': '', 
    u'snippet': u'Hi —, <content of email>. On Jun 30, 2016..., Ofek Gila <...> wrote: <content of previous email in thread>.', 
} 

Auf jeden Fall ist das Problem, dass ich weiß, dass die E-Mail geschrieben wurde, weil es im Snippet angezeigt wird, aber es zeigt nicht irgendwo sonst in der Nachricht Objekt nach oben .

Irgendeine Idee was könnte passieren?

Vielen Dank im Voraus!

Antwort

1

Versuchen Sie verwenden die bekommen Verfahren wie bei der Python sample code angegeben. Hier ist ein Ausschnitt:

def GetMimeMessage(service, user_id, msg_id): 
    """Get a Message and use it to create a MIME Message. 

    Args: 
    service: Authorized Gmail API service instance. 
    user_id: User's email address. The special value "me" 
    can be used to indicate the authenticated user. 
    msg_id: The ID of the Message required. 

    Returns: 
    A MIME Message, consisting of data from Message. 
    """ 
    try: 
    message = service.users().messages().get(userId=user_id, id=msg_id, 
              format='raw').execute() 
    print 'Message snippet: %s' % message['snippet'] 
    msg_str = base64.urlsafe_b64decode(message['raw'].encode('ASCII')) 
    mime_msg = email.message_from_string(msg_str) 
    return mime_msg 
    except errors.HttpError, error: 
    print 'An error occurred: %s' % error 

Sie auch diese SO thread und this one für einen zusätzlichen Einblick überprüfen kann.

+0

danke für dein Feedback, ich werde sicher sein, es zu überprüfen! –

+0

das scheint nicht zu helfen, es gibt mir das gleiche Problem. Ich weiß, dass es mit den meisten Nachrichten (alle außer einem) gut funktioniert. In nur einem Beispiel ist die Nachricht nicht vorhanden, aber ein Snippet zeigt die Nachricht an. Irgendeine Ahnung, was könnte das verursachen? Danke für Ihre Hilfe! –