Este documento explica como criar e enviar mensagens de e-mail usando a API Gmail.
Há duas maneiras de enviar e-mails usando a API Gmail:
- Você pode enviar diretamente usando o método
messages.send. - É possível enviar de um rascunho usando o método
drafts.send. Para mais informações sobre como enviar uma mensagem em rascunho, consulte Enviar rascunhos.
As mensagens do Gmail são enviadas como strings codificadas em base64URL no campo
raw
de um recurso messages. Para enviar uma mensagem de e-mail:
- Crie o conteúdo do e-mail e codifique-o como uma string base64URL.
- Crie um recurso de mensagem e defina a propriedade
rawcomo a string base64URL que você acabou de criar. - Chame o método
messages.sendou, se estiver enviando um rascunho, chame o métododrafts.sendpara enviar a mensagem.
Os detalhes desse fluxo de trabalho podem variar dependendo da biblioteca de cliente e da linguagem de programação escolhidas.
Criar mensagens
A API Gmail exige mensagens de e-mail MIME compatíveis com RFC 2822 e codificadas como strings base64URL. Muitas linguagens de programação têm bibliotecas ou utilitários que simplificam o processo de criação e codificação de mensagens MIME.
Os exemplos de código a seguir mostram como criar uma mensagem MIME usando as bibliotecas de cliente da API do Google para várias linguagens:
Java
Criar uma mensagem de e-mail pode ser simplificado com a classe MimeMessage no pacote javax.mail.internet. O exemplo de código a seguir mostra como
criar a mensagem de e-mail, incluindo os cabeçalhos:
Em seguida, codifique o MimeMessage, crie uma instância de um objeto messages e defina a string de mensagem codificada em base64URL como o valor da propriedade raw.
Python
O exemplo de código a seguir mostra como criar uma mensagem MIME, codificá-la em uma string
base64URL e atribuí-la ao campo raw do 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"}}'
Substitua:
ACCESS_TOKEN: o token de acesso que concede acesso à API.MESSAGE: a mensagem MIME formatada em RFC 2822, codificada como base64URL.
Criar mensagens com anexos
Criar uma mensagem com um anexo é como criar qualquer outra mensagem, mas o processo de upload do arquivo como uma mensagem MIME de várias partes depende da linguagem de programação.
Os exemplos de código a seguir mostram maneiras possíveis de criar uma mensagem MIME de várias partes com um anexo:
Java
O exemplo de código a seguir mostra como criar uma mensagem MIME de várias partes. As etapas de codificação e atribuição são as mesmas de criar mensagens.
Python
Semelhante ao exemplo de criação de mensagens, este exemplo
também processa a codificação da mensagem em base64URL e a atribui ao campo raw
do 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"}}'
Substitua:
ACCESS_TOKEN: o token de acesso que concede acesso à API.MESSAGE: a mensagem MIME formatada em RFC 2822 que contém um anexo, codificado como base64URL.
Enviar mensagens
Depois de criar uma mensagem, você pode enviá-la fornecendo-a no corpo
da solicitação do método
messages.send, conforme mostrado nos exemplos a seguir:
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"}'
Substitua:
ACCESS_TOKEN: o token de acesso que concede acesso à API.MESSAGE: a mensagem MIME formatada em RFC 2822, codificada como base64URL.
Se você estiver tentando enviar uma resposta e quiser que o e-mail seja agrupado em uma conversa, verifique se:
- Os cabeçalhos
Subjectsão iguais - Os cabeçalhos
ReferenceseIn-Reply-Toseguem o padrão RFC 2822.