このドキュメントでは、Gmail API を使用してメール メッセージを作成して送信する方法について説明します。
Gmail API を使用してメールを送信するには、次の 2 つの方法があります。
messages.sendメソッドを使用して直接送信できます。drafts.sendメソッドを使用して、下書きから送信できます。下書きメッセージの送信について詳しくは、下書きを送信するをご覧ください。
Gmail メッセージは、messages リソースの raw フィールド内の base64URL エンコード文字列として送信されます。メール メッセージを送信するには:
- メールのコンテンツを作成し、base64URL 文字列としてエンコードします。
- 新しいメッセージ リソースを作成し、その
rawプロパティを先ほど作成した base64URL 文字列に設定します。 - メッセージを送信するには、
messages.sendメソッドを呼び出します。下書きを送信する場合は、drafts.sendメソッドを呼び出します。
このワークフローの詳細は、選択したクライアント ライブラリとプログラミング言語によって異なります。
メッセージを作成する
Gmail API では、RFC 2822 に準拠し、base64URL 文字列としてエンコードされた MIME メール メッセージが必要です。多くのプログラミング言語には、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 標準に準拠しています。