In diesem Dokument wird erläutert, wie Sie mit der Gmail API E‑Mail-Nachrichten erstellen und senden.
Es gibt zwei Möglichkeiten, E‑Mails mit der Gmail API zu senden:
- Sie können sie direkt mit der
messages.sendMethode senden. - Sie können sie über einen Entwurf mit der
drafts.sendMethode senden. Weitere Informationen zum Senden von Entwürfen finden Sie unter Entwürfe senden.
Gmail-Nachrichten werden als base64URL-codierte Strings im
raw
Feld einer messages
Ressource gesendet. So senden Sie eine E‑Mail-Nachricht:
- Erstellen Sie den E‑Mail-Inhalt und codieren Sie ihn als base64URL-String.
- Erstellen Sie eine neue Nachrichtenressource und legen Sie die Eigenschaft
rawauf den gerade erstellten base64URL-String fest. - Rufen Sie die
messages.sendMethode auf, um die Nachricht zu senden. Wenn Sie einen Entwurf senden, rufen Sie diedrafts.sendMethode auf.
Die Details dieses Workflows können je nach Clientbibliothek und Programmiersprache variieren.
Nachrichten erstellen
Für die Gmail API sind MIME-E‑Mail-Nachrichten erforderlich, die RFC 2822 entsprechen und als base64URL Strings codiert sind. Viele Programmiersprachen haben Bibliotheken oder Dienstprogramme, die das Erstellen und Codieren von MIME-Nachrichten vereinfachen.
Die folgenden Codebeispiele zeigen, wie Sie mit den Google API-Clientbibliotheken für verschiedene Sprachen eine MIME-Nachricht erstellen:
Java
Das Erstellen einer E‑Mail-Nachricht kann mit der Klasse MimeMessage im Paket javax.mail.internet vereinfacht werden. Das folgende Codebeispiel zeigt, wie Sie die E‑Mail-Nachricht einschließlich der Header erstellen:
Codieren Sie als Nächstes die MimeMessage, instanziieren Sie ein messages-Objekt und legen Sie den base64URL-codierten Nachrichtenstring als Wert der Eigenschaft raw fest.
Python
Das folgende Codebeispiel zeigt, wie Sie eine MIME-Nachricht erstellen, sie in einen base64URL-String codieren und dem Feld raw der messages-Ressource zuweisen:
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/drafts' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"message":{"raw":"MESSAGE"}}'
Ersetzen Sie Folgendes:
ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.MESSAGE: die RFC 2822-formatierte MIME-Nachricht, codiert als base64URL.
Nachrichten mit Anhängen erstellen
Das Erstellen einer Nachricht mit einem Anhang ähnelt dem Erstellen einer anderen Nachricht. Das Hochladen der Datei als mehrteilige MIME-Nachricht hängt jedoch von der Programmiersprache ab.
Die folgenden Codebeispiele zeigen mögliche Möglichkeiten zum Erstellen einer mehrteiligen MIME-Nachricht mit einem Anhang:
Java
Das folgende Codebeispiel zeigt, wie Sie eine mehrteilige MIME-Nachricht erstellen. Die Codierungs- und Zuweisungsschritte sind dieselben wie beim Erstellen von Nachrichten.
Python
Ähnlich wie im Beispiel zum Erstellen von Nachrichten wird auch in diesem Beispiel
die Nachricht in base64URL codiert und dem raw
Feld der messages Ressource zugewiesen.
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/drafts' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"message":{"raw":"MESSAGE"}}'
Ersetzen Sie Folgendes:
ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.MESSAGE: die RFC 2822-formatierte MIME-Nachricht mit einem Anhang, codiert als base64URL.
Nachrichten senden
Nachdem Sie eine Nachricht erstellt haben, können Sie sie senden, indem Sie sie im Anfragetext der
messages.send
Methode angeben, wie in den folgenden Beispielen gezeigt:
Java
Python
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/messages/send' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"raw":"MESSAGE"}'
Ersetzen Sie Folgendes:
ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.MESSAGE: die RFC 2822-formatierte MIME-Nachricht, codiert als base64URL.
Wenn Sie eine Antwort senden und die E‑Mail in einem Thread gruppiert werden soll, prüfen Sie Folgendes:
- Die
Subject-Header stimmen überein. - Die
ReferencesundIn-Reply-ToHeader entsprechen dem RFC 2822-Standard.