Ce document explique comment créer et envoyer des e-mails à l'aide de l'API Gmail.
Vous pouvez envoyer des e-mails à l'aide de l'API Gmail de deux manières :
- Vous pouvez l'envoyer directement à l'aide de la méthode
messages.send. - Vous pouvez l'envoyer à partir d'un brouillon à l'aide de la méthode
drafts.send. Pour en savoir plus sur l'envoi d'un brouillon, consultez Envoyer des brouillons.
Les messages Gmail sont envoyés sous forme de chaînes encodées en base64URL dans le champ raw d'une ressource messages. Pour envoyer un e-mail :
- Créez le contenu de l'e-mail et encodez-le en tant que chaîne base64URL.
- Créez une ressource de message et définissez sa propriété
rawsur la chaîne base64URL que vous venez de créer. - Appelez la méthode
messages.sendou, si vous envoyez un brouillon, la méthodedrafts.sendpour envoyer le message.
Les détails de ce workflow peuvent varier en fonction de la bibliothèque cliente et du langage de programmation que vous choisissez.
Créer des messages
L'API Gmail nécessite des messages MIME conformes à la RFC 2822 et encodés en chaînes base64URL. De nombreux langages de programmation disposent de bibliothèques ou d'utilitaires qui simplifient la création et l'encodage des messages MIME.
Les exemples de code suivants montrent comment créer un message MIME à l'aide des bibliothèques clientes des API Google pour différents langages :
Java
La création d'un message électronique peut être simplifiée avec la classe MimeMessage du package javax.mail.internet. L'exemple de code suivant montre comment créer le message électronique, y compris les en-têtes :
Ensuite, encodez MimeMessage, instanciez un objet messages et définissez la chaîne de message encodée en base64URL comme valeur de la propriété raw.
Python
L'exemple de code suivant montre comment créer un message MIME, l'encoder en chaîne base64URL et l'attribuer au champ raw de la ressource messages :
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"}}'
Remplacez les éléments suivants :
ACCESS_TOKEN: jeton d'accès qui permet d'accéder à l'API.MESSAGE: message MIME au format RFC 2822, encodé en base64URL.
Créer des messages avec des pièces jointes
Créer un message avec une pièce jointe est semblable à la création de tout autre message, mais le processus d'importation du fichier en tant que message MIME multipartite dépend du langage de programmation.
Les exemples de code suivants montrent comment créer un message MIME multipartite avec une pièce jointe :
Java
L'exemple de code suivant montre comment créer un message MIME multipartite. Les étapes d'encodage et d'attribution sont les mêmes que pour la création de messages.
Python
Comme dans l'exemple Créer des messages, cet exemple gère également l'encodage du message en base64URL et son attribution au champ raw de la ressource messages.
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"}}'
Remplacez les éléments suivants :
ACCESS_TOKEN: jeton d'accès qui permet d'accéder à l'API.MESSAGE: message MIME au format RFC 2822 contenant une pièce jointe, encodé en base64URL.
Envoyer des messages
Une fois que vous avez créé un message, vous pouvez l'envoyer en l'indiquant dans le corps de la requête de la méthode messages.send, comme illustré dans les exemples suivants :
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"}'
Remplacez les éléments suivants :
ACCESS_TOKEN: jeton d'accès qui permet d'accéder à l'API.MESSAGE: message MIME au format RFC 2822, encodé en base64URL.
Si vous essayez d'envoyer une réponse et que vous souhaitez que l'e-mail soit regroupé dans un fil de discussion, assurez-vous que :
- Les en-têtes
Subjectcorrespondent. - Les en-têtes
ReferencesetIn-Reply-Tosuivent la norme RFC 2822.