本文說明如何使用 Gmail API 建立及傳送電子郵件。
使用 Gmail API 傳送電子郵件的方法有兩種:
- 您可以使用
messages.send方法直接傳送。 - 您可以使用
drafts.send方法,從草稿傳送訊息。如要進一步瞭解如何傳送草稿訊息,請參閱「傳送草稿」。
Gmail 郵件會以 base64URL 編碼字串的形式,在 messages 資源的 raw 欄位中傳送。如要傳送電子郵件,請按照下列步驟操作:
- 建立電子郵件內容,並以 base64URL 字串編碼。
- 建立新的訊息資源,並將其
raw屬性設為您剛建立的 base64URL 字串。 - 呼叫
messages.send方法,或在傳送草稿時呼叫drafts.send方法,即可傳送訊息。
這個工作流程的詳細資料會因您選擇的用戶端程式庫和程式設計語言而異。
建立訊息
Gmail API 規定 MIME 電子郵件必須符合 RFC 2822 規範,並編碼為 base64URL 字串。許多程式設計語言都有程式庫或公用程式,可簡化建立及編碼 MIME 訊息的程序。
下列程式碼範例說明如何使用各種語言的 Google API 用戶端程式庫建立 MIME 訊息:
Java
您可以使用 javax.mail.internet 套件中的 MimeMessage 類別,簡化電子郵件訊息的建立程序。下列程式碼範例說明如何建立電子郵件訊息,包括標頭:
接著,請編碼 MimeMessage、例項化 messages 物件,並將 base64URL 編碼的訊息字串設為 raw 屬性的值。
Python
下列程式碼範例說明如何建立 MIME 訊息、將其編碼為 base64URL 字串,並指派給 messages 資源的 raw 欄位:
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"}}'
更改下列內容:
ACCESS_TOKEN:授予 API 存取權的存取權杖。MESSAGE:採用 RFC 2822 格式的 MIME 訊息,並以 base64URL 編碼。
建立含有附件的訊息
建立含附件的郵件與建立任何其他郵件類似,但將檔案上傳為多部分 MIME 郵件的程序取決於程式設計語言。
下列程式碼範例顯示建立含有附件的多部分 MIME 訊息的可能方式:
Java
以下程式碼範例說明如何建立多部分 MIME 訊息。編碼和指派步驟與建立訊息相同。
Python
與建立訊息範例類似,這個範例也會處理將訊息編碼為 base64URL,並將其指派給 messages 資源的 raw 欄位。
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"}}'
更改下列內容:
ACCESS_TOKEN:授予 API 存取權的存取權杖。MESSAGE:包含附件的 RFC 2822 格式 MIME 訊息,以 base64URL 編碼。
傳送訊息
建立訊息後,您可以在 messages.send 方法的要求主體中提供訊息,即可傳送訊息,如下列範例所示:
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"}'
更改下列內容:
ACCESS_TOKEN:授予 API 存取權的存取權杖。MESSAGE:採用 RFC 2822 格式的 MIME 訊息,並以 base64URL 編碼。
如要回覆郵件並將其歸入討論串,請確認下列事項:
Subject標頭相符References和In-Reply-To標頭符合 RFC 2822 標準。