Ich habe kürzlich versucht, meine Hände in der neuen Google Mail-API auszuprobieren. Und alles scheint gut zu funktionieren, außer einer Sache. Mein Problem ist wie folgt:Gmail-API sendet E-Mails, aber einige werden nie empfangen
Ich arbeite an einem Rezeptionist Projekt, das möglicherweise mehr als eine E-Mail in weniger als einer Minute während der geschäftigen Stunden generieren muss. Also nur zu Testzwecken betreibe ich den folgenden Code, der gut arbeitet:
if __name__ == '__main__':
service = setup() //Simply an helper function to do the basic credential check. Works fine!
print('service:'+str(service))
for counter in range(1, 10):
print('Sending message '+ str(counter))
message = create_message(<SENDER_EMAIL_ID>,<RECEIVER_EMAIL_ID>, "Email Number: "+ str(counter) , "Sample text")
response = send_message(service, 'me' , message)
print(response)
Das Setup() Funktion ist wie folgt:
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('gmail', 'v1', http=http)
Nun, wenn ich den Code ausführen sagen dreimal hintereinander in weniger als eine Minute, der Code läuft gut und ich bin in der Lage, alle 27 E-Mails im gesendeten Ordner der SENDER_EMAIL_ID mit einem Webbrowser zu sehen. Daher sendet die Google Mail-API alle Nachrichten, wenn eine Anfrage gesendet wird. Jedoch werden nur einige dieser E-Mails an der RECEIVER_EMAIL_ID empfangen und der Rest wird gerade gelöscht.
Wenn ich jedoch das Programm mit sagen 2-5 Minuten Verzögerung ausführen, dann werden alle E-Mails empfangen.
Ich habe keine Ahnung, warum das ist.
Jede Hilfe würde wirklich geschätzt werden. :)
Ich kann mir vorstellen, dass die API eine Art Soft-Rate-Limiting verwendet, also würde ich vorschlagen, die "Antwort" beim Aufruf von 'send_message()' gegenüber der 'Antwort' für spätere Aufrufe von' zu vergleichen get_message() ', und sehen Sie, wie sich die Antworten zwischen sofort gesendeten, verzögerten und gelöschten E-Mails unterscheiden. –
Es tut mir leid, hätte ich erwähnen sollen. Ich überprüfe die empfangenen Mails direkt mit einem Browser. Also benutze ich einfach send_message(). Auch die Antwort, die ich für jede Anfrage bekomme, ist wie folgt: 'Gesendete Nachricht: {u'labelIds ': [u'SENT'], u'id ': u'157bce1438e5db28', u'threadId ': u'157bce1438e5db28 '} ' –
Es gibt also keine Fehler in Ihrer Antwort. Es wird eine [Users.messages-Ressource] (https://developers.google.com/gmail/api/v1/reference/users/messages#resource) zurückgegeben) für alle Elemente auf der Schleife, aber nur einige wurden vom Empfänger empfangen? Was meinst du mit "fallengelassen" - Senden fehlgeschlagen? – adjuremods