2016-07-03 23 views
0

Ich versuche, eine E-Mail auf Google Mail-Konto mit Google Mail-REST-API für den Import Nachricht https://developers.google.com/gmail/api/v1/reference/users/messages/import#http-request mit Python-Anfragen-Modul. E-Mail ist im RAW-Format (dh Daten von EML-Datei mit base64.b64encode codiert()) mit KörperGoogle Mail REST API 'Import-Nachricht' mit Python-Anfragen

POST https://www.googleapis.com/gmail/v1/users/me/messages/import 
{ 
"raw": ".........." 
} 

Dies ist für RAW-Daten arbeiten Größe bis zu einigen MBs (etwa 5 MB), aber ich bin immer " Verbindungstimeout 'Fehler, wenn ich versuche, größere Daten zu laden (~ 10 MB oder mehr).

Kann mir jemand sagen, wie man mit dieser API größere E-Mail-Daten hochladen kann.

Ich bin mit OAuth access_token diese APIs

Antwort

0

Versuchen die uploadType zu resumable

Resumable upload

Einstellung aufrufen zuverlässiger zum Hochladen von Daten-Dateien, können Sie die fortsetzbar verwenden Upload-Protokoll. Mit diesem Protokoll können Sie einen Upload-Vorgang fortsetzen, nachdem ein Kommunikationsfehler den Datenfluss unterbrochen hat. Es ist besonders nützlich, wenn Sie Übertragung großer Dateien und die Wahrscheinlichkeit einer Netzwerkunterbrechung oder einige andere Übertragungsfehler ist hoch, zum Beispiel beim Hochladen von einer mobilen Client-App. Es kann auch die Bandbreitennutzung bei Netzwerkfehlern reduzieren, da Sie große Dateiuploads nicht von Anfang an neu starten müssen.

Beispiel: Wiederaufnehmbare Session Initiation Anfrage

POST /upload/gmail/v1/users/userId/messages/send?uploadType=resumable HTTP/1.1 
Host: www.googleapis.com 
Authorization: Bearer your_auth_token 
Content-Length: 38 
Content-Type: application/json; charset=UTF-8 
X-Upload-Content-Type: message/rfc822 
X-Upload-Content-Length: 2000000 

{ 
"id": string, 
"threadId": string, 
"labelIds": [ 
string 
], 
"snippet": string, 
"historyId": unsigned long, 
"payload": { 
"partId": string, 
"mimeType": string, 
"filename": string, 
"headers": [ 
{ 
"name": string, 
"value": string 
} 
], 
"body": users.messages.attachments Resource, 
"parts": [ 
(MessagePart) 
] 
}, 
"sizeEstimate": integer, 
"raw": bytes 
} 
+0

@ mr-rebot Danke für das Beispiel, ich versuche nicht, Mail zu senden, aber versuche,/Import wiederherstellen mit RAW eml Strom vorhandenen E-Mail. Beim Importieren mit/upload und uploadType = fortsetzbar) erhalte ich den Fehler {u'error ': {u'code': 400, u'message ': u "Erwarte eine einzelne' Von 'Kopfzeile", u' Fehler ': [{u'domain': u'global ', u'message': u "Erwartete einen einzelnen 'Von' header", '' '' '' '' '' ']]}} –

+0

@ mr-rebot, Ich habe dieses Beispiel versucht (send mail). Es gibt mir eine leere Antwort mit dem Statuscode 200 zurück. Ich erwarte eine Antwort wie unten, werde aber leer. d.h. kein Ort/Sitzung_uri als Antwort. HTTP/1.1 200 OK Ort: https://www.googleapis.com/upload/gmail/v1/users/userId/messages/send?uploadType=resumable&upload_id=xa298sd_sdlkj2 Content-Length: 0 –