下書きは、DRAFT
システムラベルが適用された未送信メールを表します。
下書きに含まれるメッセージは、作成後に編集することはできませんが、置き換えることはできます。この意味で、ドラフト リソースは不変の ID を提供するコンテナにすぎません。基礎となるメッセージ ID はメッセージが置換されるたびに変更されるためです。
下書き内のメッセージ リソースは、次の点を除き、他のメッセージと動作は同じです。
- 下書きのメールには、
DRAFT
システムラベル以外のラベルを設定できません。 - 下書きが送信されると、下書きが自動的に削除され、
SENT
システムラベルが付けられた、更新された ID を持つ新しいメッセージが作成されます。このメッセージは、drafts.send
レスポンスで返されます。
目次
メッセージの下書きを作成する
drafts.create メソッドを使用して、下書きを作成できます。一般的なプロセスは次のとおりです。
- RFC 2822 に準拠する MIME メッセージを作成します。
- メッセージを base64url でエンコードされた文字列に変換します。
- ドラフトを作成し、
drafts.message.raw
フィールドの値をエンコードされた文字列に設定します。
次のコードサンプルはこのプロセスを示しています。
Java
Python
下書きを更新しています
下書きの作成と同様に、下書きを更新するには、リクエストの本文で Draft
リソースを指定し、draft.message.raw
フィールドを MIME メッセージを含む base64url でエンコードされた文字列に設定する必要があります。メッセージは更新できないため、下書きに含まれるメッセージは破棄され、更新リクエストで指定された新しい MIME メッセージに置き換えられます。
下書きに含まれる現在の MIME メッセージを取得するには、パラメータ format=raw
を指定して drafts.get
を呼び出します。
詳細については、drafts.update
をご覧ください。
下書きの送信
下書きを送信するときに、メッセージをそのまま送信するか、更新したメッセージと一緒に送信するかを選択できます。下書きのコンテンツを新しいメッセージで更新する場合は、drafts.send
リクエストの本文で Draft
リソースを指定し、送信する下書きの draft.id
を設定し、draft.message.raw
フィールドを base64url でエンコードされた文字列としてエンコードされた新しい MIME メッセージに設定します。詳細については、drafts.send
をご覧ください。