Ce document explique comment créer et envoyer des e-mails à l'aide de l'API Gmail.
Vous pouvez envoyer des e-mails de deux manières à l'aide de l'API Gmail :
- Vous pouvez les envoyer directement à l'aide de la
messages.sendméthode. - Vous pouvez les envoyer à partir d'un brouillon à l'aide de la
drafts.sendméthode. Pour en savoir plus sur l'envoi d'un brouillon, consultez la section Envoyer des brouillons.
Les messages Gmail sont envoyés sous forme de chaînes encodées en base64URL dans le
raw
champ d'une messages
ressource. Pour envoyer un e-mail :
- Créez le contenu de l'e-mail et encodez-le sous forme de 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
messages.sendméthode ou, si vous envoyez un brouillon, appelez ladrafts.sendméthode pour 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 e-mails MIME conformes à la norme RFC 2822 et encodés sous forme de chaînes base64URL. De nombreux langages de programmation disposent de bibliothèques ou d'utilitaires qui simplifient le processus de création et d'encodage des messages MIME.
Les exemples de code suivants montrent comment créer un message MIME à l'aide des bibliothèques clientes de l'API Google pour différents langages :
Java
La création d'un e-mail peut être simplifiée avec la classe MimeMessage du package javax.mail.internet. L'exemple de code suivant montre comment créer l'e-mail, y compris les en-têtes :
Ensuite, encodez le 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 autorise l'accès à l'API.MESSAGE: message MIME au format RFC 2822, encodé en base64URL.
Créer des messages avec des pièces jointes
La création d'un message avec une pièce jointe est semblable à la création de n'importe quel autre message, mais le processus d'importation du fichier en tant que message MIME multipart dépend du langage de programmation.
Les exemples de code suivants montrent comment créer un message MIME multipart avec une pièce jointe :
Java
L'exemple de code suivant montre comment créer un message MIME multipart. Les étapes d'encodage et d'attribution sont les mêmes que pour la création de messages.
Python
Comme dans l'exemple de création de messages, cet exemple
gère également l'encodage du message en base64URL et son attribution au raw
champ 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 autorise l'accès à 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 le fournissant dans le corps de la requête
de la
messages.send
méthode, 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 autorise l'accès à 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-Tosont conformes à la norme RFC 2822.