In diesem Dokument wird beschrieben, wie Sie mit der Gmail API E‑Mail-Nachrichten erstellen und senden.
Es gibt zwei Möglichkeiten, E‑Mails über die Gmail API zu senden:
- Sie können sie direkt mit der Methode
messages.sendsenden. - Sie können sie über einen Entwurf mit der Methode
drafts.sendsenden. Weitere Informationen zum Senden einer Nachrichtenversion finden Sie unter Versionen senden.
Gmail-Nachrichten werden als base64URL-codierte Strings im Feld raw einer messages-Ressource gesendet. So senden Sie eine E‑Mail:
- Erstellen Sie den E‑Mail-Inhalt und codieren Sie ihn als base64URL-String.
- Erstellen Sie eine neue Nachrichtenressource und legen Sie deren
raw-Property auf den base64URL-String fest, den Sie gerade erstellt haben. - Rufen Sie die Methode
messages.sendoder, wenn Sie einen Entwurf senden, die Methodedrafts.sendauf, um die Nachricht zu senden.
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 eine MIME-Nachricht mit Google API-Clientbibliotheken für verschiedene Sprachen 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 Kopfzeilen erstellen:
Codieren Sie als Nächstes MimeMessage, instanziieren Sie ein messages-Objekt und legen Sie den Base64URL-codierten Nachrichtenstring als Wert der raw-Eigenschaft fest.
Python
Das folgende Codebeispiel zeigt, wie eine MIME-Nachricht erstellt, in einen base64URL-String codiert und dem Feld raw der messages-Ressource zugewiesen wird:
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 den Zugriff auf die API gewährt.MESSAGE: die als base64URL codierte MIME-Nachricht im RFC 2822-Format.
Nachrichten mit Anhängen erstellen
Das Erstellen einer Nachricht mit Anhang ist wie das Erstellen jeder anderen Nachricht, aber das Hochladen der Datei als mehrteilige MIME-Nachricht hängt von der Programmiersprache ab.
Die folgenden Codebeispiele zeigen mögliche Wege zum Erstellen einer mehrteiligen MIME-Nachricht mit einem Anhang:
Java
Das folgende Codebeispiel zeigt, wie eine mehrteilige MIME-Nachricht erstellt wird. Die Schritte zum Codieren und Zuweisen sind dieselben wie beim Erstellen von Nachrichten.
Python
Ähnlich wie im Beispiel Nachrichten erstellen wird in diesem Beispiel auch die Nachricht in base64URL codiert und dem Feld raw 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 den Zugriff auf die API gewährt.MESSAGE: Die im RFC 2822-Format formatierte MIME-Nachricht mit einem Anhang, der als Base64URL codiert ist.
Nachrichten senden
Nachdem Sie eine Nachricht erstellt haben, können Sie sie senden, indem Sie sie im Anfragetext der Methode messages.send 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 den Zugriff auf die API gewährt.MESSAGE: die als base64URL codierte MIME-Nachricht im RFC 2822-Format.
Wenn Sie eine Antwort senden und die E‑Mail in einem Thread gruppiert werden soll, achten Sie darauf, dass:
- Die
Subject-Header stimmen überein. - Die Header
ReferencesundIn-Reply-Toentsprechen dem RFC 2822-Standard.