GraphApi.Mail (GraphApi v1.0.0-rc.1)

Copy Markdown View Source

Operations on mail resources (/users/{id}/messages, /users/{id}/sendMail, etc.).

Examples

# List messages
{:ok, %{"value" => messages}} = GraphApi.Mail.list_messages("user-id")

# Send mail
GraphApi.Mail.send_mail("user-id", %{
  subject: "Hello",
  body: %{contentType: "Text", content: "Hi there"},
  toRecipients: [%{emailAddress: %{address: "bob@contoso.com"}}]
})

Summary

Functions

Creates a draft message in the user's Drafts folder.

Delta query for messages in a specific mail folder.

Lists messages in a specific mail folder.

Lists mail folders for a user.

Lists messages in a user's mailbox.

Delta query for a user's messages. Returns message changes since the last sync.

Sends a mail on behalf of a user.

Functions

create_draft(user_id, message, opts \\ [])

@spec create_draft(String.t(), map(), keyword()) :: {:ok, map()} | {:error, term()}

Creates a draft message in the user's Drafts folder.

create_draft_query(user_id, message, opts \\ [])

@spec create_draft_query(String.t(), map(), keyword()) :: GraphApi.Batch.Request.t()

Batch query variant of create_draft/3.

delete_message(user_id, message_id, opts \\ [])

@spec delete_message(String.t(), String.t(), keyword()) :: :ok | {:error, term()}

Deletes a message.

delete_message_query(user_id, message_id, opts \\ [])

@spec delete_message_query(String.t(), String.t(), keyword()) ::
  GraphApi.Batch.Request.t()

Batch query variant of delete_message/3.

folder_messages_delta(user_id, folder_id, opts \\ [])

@spec folder_messages_delta(String.t(), String.t(), keyword()) ::
  {:ok, GraphApi.Delta.delta_page()} | {:error, term()}

Delta query for messages in a specific mail folder.

folder_messages_delta_query(user_id, folder_id, opts \\ [])

@spec folder_messages_delta_query(String.t(), String.t(), keyword()) ::
  GraphApi.Batch.Request.t()

Batch query variant of folder_messages_delta/3.

get_message(user_id, message_id, opts \\ [])

@spec get_message(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, term()}

Gets a specific message.

get_message_query(user_id, message_id, opts \\ [])

@spec get_message_query(String.t(), String.t(), keyword()) ::
  GraphApi.Batch.Request.t()

Batch query variant of get_message/3.

list_folder_messages(user_id, folder_id, opts \\ [])

@spec list_folder_messages(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, term()}

Lists messages in a specific mail folder.

list_folder_messages_query(user_id, folder_id, opts \\ [])

@spec list_folder_messages_query(String.t(), String.t(), keyword()) ::
  GraphApi.Batch.Request.t()

Batch query variant of list_folder_messages/3.

list_mail_folders(user_id, opts \\ [])

@spec list_mail_folders(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, term()}

Lists mail folders for a user.

list_mail_folders_query(user_id, opts \\ [])

@spec list_mail_folders_query(
  String.t(),
  keyword()
) :: GraphApi.Batch.Request.t()

Batch query variant of list_mail_folders/2.

list_messages(user_id, opts \\ [])

@spec list_messages(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, term()}

Lists messages in a user's mailbox.

list_messages_query(user_id, opts \\ [])

@spec list_messages_query(
  String.t(),
  keyword()
) :: GraphApi.Batch.Request.t()

Batch query variant of list_messages/2.

messages_delta(user_id, opts \\ [])

@spec messages_delta(
  String.t(),
  keyword()
) :: {:ok, GraphApi.Delta.delta_page()} | {:error, term()}

Delta query for a user's messages. Returns message changes since the last sync.

messages_delta_query(user_id, opts \\ [])

@spec messages_delta_query(
  String.t(),
  keyword()
) :: GraphApi.Batch.Request.t()

Batch query variant of messages_delta/2.

send_mail(user_id, message, opts \\ [])

@spec send_mail(String.t(), map(), keyword()) :: :ok | {:error, term()}

Sends a mail on behalf of a user.

The message map should include :subject, :body, and :toRecipients. An optional save_to_sent_items boolean can be passed (default: true).

send_mail_query(user_id, message, opts \\ [])

@spec send_mail_query(String.t(), map(), keyword()) :: GraphApi.Batch.Request.t()

Batch query variant of send_mail/3.