Questo documento spiega come creare e inviare messaggi email utilizzando l'API Gmail.
Esistono due modi per inviare email utilizzando l'API Gmail:
- Puoi inviarlo direttamente utilizzando il metodo
messages.send. - Puoi inviarlo da una bozza utilizzando il metodo
drafts.send. Per saperne di più sull'invio di un messaggio in bozza, consulta Inviare bozze.
I messaggi Gmail vengono inviati come stringhe con codifica base64URL all'interno del
campo raw di una risorsa
messages. Per inviare un messaggio email:
- Crea il contenuto dell'email e codificalo come stringa base64URL.
- Crea una nuova risorsa di messaggi e imposta la relativa proprietà
rawsulla stringa base64URL che hai appena creato. - Chiama il metodo
messages.sendo, se invii una bozza, chiama il metododrafts.sendper inviare il messaggio.
I dettagli di questo flusso di lavoro possono variare in base alla libreria client e al linguaggio di programmazione scelti.
Creare messaggi
L'API Gmail richiede messaggi email MIME conformi a RFC 2822 e codificati come stringhe base64URL. Molti linguaggi di programmazione dispongono di librerie o utilità che semplificano il processo di creazione e codifica dei messaggi MIME.
I seguenti esempi di codice mostrano come creare un messaggio MIME utilizzando le librerie client dell'API di Google per vari linguaggi:
Java
La creazione di un messaggio email può essere semplificata con la classe MimeMessage nel pacchetto javax.mail.internet. Il seguente esempio di codice mostra come
creare il messaggio email, incluse le intestazioni:
Successivamente, codifica MimeMessage, crea un'istanza di un oggetto messages e imposta la stringa del messaggio con codifica base64URL come valore della proprietà raw.
Python
Il seguente esempio di codice mostra come creare un messaggio MIME, codificarlo in una stringa base64URL e assegnarlo al campo raw della risorsa 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"}}'
Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che concede l'accesso all'API.MESSAGE: il messaggio MIME formattato RFC 2822, codificato come base64URL.
Creare messaggi con allegati
La creazione di un messaggio con un allegato è simile alla creazione di qualsiasi altro messaggio, ma la procedura di caricamento del file come messaggio MIME multipart dipende dal linguaggio di programmazione.
I seguenti esempi di codice mostrano i modi possibili per creare un messaggio MIME in più parti con un allegato:
Java
Il seguente esempio di codice mostra come creare un messaggio MIME in più parti. I passaggi di codifica e assegnazione sono gli stessi di crea messaggi.
Python
Analogamente all'esempio Crea messaggi, questo esempio
gestisce anche la codifica del messaggio in base64URL e l'assegnazione al campo raw
della risorsa 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"}}'
Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che concede l'accesso all'API.MESSAGE: il messaggio MIME formattato RFC 2822 contenente un allegato, codificato come base64URL.
Inviare messaggi
Una volta creato un messaggio, puoi inviarlo fornendolo nel corpo della richiesta del metodo messages.send, come mostrato negli esempi seguenti:
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"}'
Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che concede l'accesso all'API.MESSAGE: il messaggio MIME formattato RFC 2822, codificato come base64URL.
Se stai cercando di inviare una risposta e vuoi che l'email venga raggruppata in un thread, assicurati che:
- Le intestazioni
Subjectcorrispondono - Le intestazioni
ReferenceseIn-Reply-Toseguono lo standard RFC 2822.