Z tego dokumentu dowiesz się, jak tworzyć i wysyłać e-maile za pomocą interfejsu Gmail API.
E-maile można wysyłać za pomocą interfejsu Gmail API na 2 sposoby:
- Możesz wysłać go bezpośrednio za pomocą metody
messages.send. - Możesz wysłać go z wersji roboczej za pomocą metody
drafts.send. Więcej informacji o wysyłaniu wersji roboczych wiadomości znajdziesz w artykule Wysyłanie wersji roboczych.
Wiadomości Gmaila są wysyłane jako ciągi znaków zakodowane w standardzie base64URL w polu raw zasobu messages. Aby wysłać e-maila:
- Utwórz treść e-maila i zakoduj ją jako ciąg znaków base64URL.
- Utwórz nowy zasób wiadomości i ustaw jego właściwość
rawna utworzony przed chwilą ciąg znaków base64URL. - Aby wysłać wiadomość, wywołaj metodę
messages.sendlub, jeśli wysyłasz wersję roboczą, metodędrafts.send.
Szczegóły tego procesu mogą się różnić w zależności od wybranej biblioteki klienta i języka programowania.
Tworzenie wiadomości
Interfejs Gmail API wymaga wiadomości e-mail MIME zgodnych ze standardem RFC 2822 i zakodowanych jako ciągi base64URL. Wiele języków programowania ma biblioteki lub narzędzia, które upraszczają proces tworzenia i kodowania wiadomości MIME.
Poniższe przykłady kodu pokazują, jak utworzyć wiadomość MIME za pomocą bibliotek klienta interfejsu API Google w różnych językach:
Java
Tworzenie wiadomości e-mail można uprościć za pomocą klasy MimeMessage w pakiecie javax.mail.internet. Poniższy przykładowy kod pokazuje, jak utworzyć wiadomość e-mail, w tym nagłówki:
Następnie zakoduj parametr MimeMessage, utwórz instancję obiektu messages i ustaw ciąg tekstowy wiadomości zakodowany w base64URL jako wartość właściwości raw.
Python
Poniższy przykładowy kod pokazuje, jak utworzyć wiadomość MIME, zakodować ją w ciągu base64URL i przypisać do pola raw zasobu 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"}}'
Zastąp następujące elementy:
ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.MESSAGE: wiadomość MIME w formacie RFC 2822, zakodowana jako base64URL.
Tworzenie wiadomości z załącznikami
Tworzenie wiadomości z załącznikiem jest podobne do tworzenia każdej innej wiadomości, ale proces przesyłania pliku jako wiadomości MIME składającej się z wielu części zależy od języka programowania.
Poniższe przykłady kodu pokazują możliwe sposoby tworzenia wieloczęściowej wiadomości MIME z załącznikiem:
Java
Poniższy przykładowy kod pokazuje, jak utworzyć wiadomość MIME składającą się z wielu części. Kroki kodowania i przypisywania są takie same jak w przypadku tworzenia wiadomości.
Python
Podobnie jak w przykładzie tworzenia wiadomości, ten przykład również obsługuje kodowanie wiadomości w base64URL i przypisywanie jej do pola raw zasobu 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"}}'
Zastąp następujące elementy:
ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.MESSAGE: wiadomość MIME w formacie RFC 2822 zawierająca załącznik, zakodowana jako base64URL.
Wysyłanie wiadomości
Po utworzeniu wiadomości możesz ją wysłać, podając ją w treści żądania metody messages.send, jak pokazano w tych przykładach:
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"}'
Zastąp następujące elementy:
ACCESS_TOKEN: token dostępu, który przyznaje dostęp do interfejsu API.MESSAGE: wiadomość MIME w formacie RFC 2822, zakodowana jako base64URL.
Jeśli chcesz wysłać odpowiedź i zależy Ci na tym, aby e-mail został zgrupowany w wątku, upewnij się, że:
- Nagłówki
Subjectsą zgodne - Nagłówki
ReferencesiIn-Reply-Tosą zgodne ze standardem RFC 2822.