En este documento, se explica cómo crear y enviar mensajes de correo electrónico con la API de Gmail.
Existen dos formas de enviar correos electrónicos con la API de Gmail:
- Puedes enviarlo directamente con el método
messages.send. - Puedes enviarlo desde un borrador con el método
drafts.send. Para obtener más información sobre cómo enviar un mensaje borrador, consulta Envía borradores.
Los mensajes de Gmail se envían como cadenas codificadas en base64URL dentro del campo raw de un recurso messages. Para enviar un mensaje de correo electrónico, sigue estos pasos:
- Crea el contenido del correo electrónico y codifícalo como una cadena base64URL.
- Crea un recurso de mensaje nuevo y establece su propiedad
rawen la cadena base64URL que acabas de crear. - Llama al método
messages.sendo, si envías un borrador, llama al métododrafts.sendpara enviar el mensaje.
Los detalles de este flujo de trabajo pueden variar según la biblioteca cliente y el lenguaje de programación que elijas.
Crear mensajes
La API de Gmail requiere mensajes de correo electrónico MIME que cumplan con el RFC 2822 y estén codificados como cadenas base64URL. Muchos lenguajes de programación tienen bibliotecas o utilidades que simplifican el proceso de creación y codificación de mensajes MIME.
En los siguientes ejemplos de código, se muestra cómo crear un mensaje MIME con las bibliotecas cliente de las APIs de Google para varios lenguajes:
Java
La creación de un mensaje de correo electrónico se puede simplificar con la clase MimeMessage del paquete javax.mail.internet. En el siguiente código de muestra, se muestra cómo crear el mensaje de correo electrónico, incluidos los encabezados:
A continuación, codifica el MimeMessage, crea una instancia de un objeto messages y establece la cadena de mensaje codificada en Base64 como el valor de la propiedad raw.
Python
En el siguiente código de muestra, se muestra cómo crear un mensaje MIME, codificarlo en una cadena base64URL y asignarlo al campo raw del recurso 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"}}'
Reemplaza lo siguiente:
ACCESS_TOKEN: Es el token de acceso que otorga acceso a la API.MESSAGE: Es el mensaje MIME con formato RFC 2822, codificado como base64URL.
Crea mensajes con archivos adjuntos
Crear un mensaje con un archivo adjunto es como crear cualquier otro mensaje, pero el proceso de subir el archivo como un mensaje MIME de varias partes depende del lenguaje de programación.
En los siguientes ejemplos de código, se muestran las posibles formas de crear un mensaje MIME de varias partes con un archivo adjunto:
Java
En el siguiente ejemplo de código, se muestra cómo crear un mensaje MIME de varias partes. Los pasos de codificación y asignación son los mismos que los de crear mensajes.
Python
De manera similar al ejemplo de creación de mensajes, este ejemplo también controla la codificación del mensaje en base64URL y su asignación al campo raw del recurso 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"}}'
Reemplaza lo siguiente:
ACCESS_TOKEN: Es el token de acceso que otorga acceso a la API.MESSAGE: Es el mensaje MIME con formato RFC 2822 que contiene un adjunto, codificado como base64URL.
Enviar mensajes
Una vez que hayas creado un mensaje, puedes enviarlo proporcionándolo en el cuerpo de la solicitud del método messages.send, como se muestra en los siguientes ejemplos:
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"}'
Reemplaza lo siguiente:
ACCESS_TOKEN: Es el token de acceso que otorga acceso a la API.MESSAGE: Es el mensaje MIME con formato RFC 2822, codificado como base64URL.
Si intentas enviar una respuesta y quieres que el correo electrónico se agrupe en un hilo, asegúrate de lo siguiente:
- Los encabezados de
Subjectcoinciden - Los encabezados
ReferencesyIn-Reply-Tosiguen el estándar RFC 2822.