Pular para conteúdo

Ações de E-mail (Office 365)

Ações para ler, navegar, baixar anexos e enviar e-mails usando a API do Office 365.

Para usar estas ações é necessário ter as credenciais do aplicativo Azure: Tenant ID, Client ID, Client Secret e User ID.

Para seguir um passo a passo de criação do app: Tutorial de Criação do App na Azure

Observação: o parâmetro folder_name por padrão é definido como Caixa de Entrada no cliente.

Importante sobre retornos (variáveis de estado) - As ações expõem os valores retornados como variáveis de estado que podem ser lidas pelo integrador. - Para acessar um valor retornado, atribua uma variável local à variável de estado usando o prefixo $. O nome deve ser exatamente igual à chave retornada pela ação.

Exemplo genérico:

# chama a action
office365.create_office365_client("TENANT", "CLIENT", "SECRET", "USER")

# lê o cliente criado e a contagem de e-mails
email_client = $email_client
emails_count = $emails_count

Ações

As ações abaixo estão disponíveis e documentadas com parâmetros, retornos e exemplos de uso.

office365.create_office365_client

Cria uma nova conexão com a API do Office 365 e carrega a lista inicial de e-mails.

Parâmetros: - tenant_id — Tenant ID do app criado na Azure. - client_id — Client ID do app na Azure. - client_secret — Client Secret (segredo) do app. - user_id — ID do usuário (conta) a ser conectada. - pagination_limit (opcional) — quantidade de e-mails por página (padrão: 50). - folder_name (opcional) — nome da pasta inicial (padrão: Caixa de Entrada).

Retorno (variáveis de estado): - email_client — objeto de conexão que deve ser passado para as demais ações. - emails_count — número total de e-mails na pasta padrão após o carregamento. - current_folder — nome da pasta atual (string). No retorno padrão o valor será inbox.

Exemplo:

office365.create_office365_client("TENANT", "CLIENT", "SECRET", "USER")
email_client = $email_client
emails_count = $emails_count
current_folder = $current_folder

office365.get_current_email

Retorna os detalhes do e-mail na posição atual do cliente (o e-mail "ativo").

Parâmetros: - email_client — objeto retornado por office365.create_office365_client.

Retorno (variáveis de estado): - id — identificador do e-mail na API Office 365. - from — nome do remetente. - from_address — endereço de e-mail do remetente. - subject — assunto da mensagem. - date — data/hora de recebimento. - has_attachments — booleano indicando se há anexos. - html_body — corpo da mensagem em HTML. - check_read — booleano indicando se a mensagem foi lida.

Exemplo:

office365.get_current_email($email_client)
email_id = $id
from_name = $from
subject = $subject
has_attachments = $has_attachments

office365.next_email

Move a posição atual para o próximo e-mail (mais recente) e retorna seus detalhes.

Parâmetros: - email_client — objeto de conexão.

Retorno (variáveis de estado): - mesmos campos de get_current_email (id, from, from_address, subject, date, has_attachments, html_body, check_read)

Exemplo:

office365.next_email($email_client)
next_id = $id

office365.previous_email

Move a posição atual para o e-mail anterior (mais antigo) e retorna seus detalhes.

Parâmetros: - email_client — objeto de conexão.

Retorno (variáveis de estado): - mesmos campos de get_current_email

Exemplo:

office365.previous_email($email_client)
prev_subject = $subject

office365.list_folders

Retorna a lista de pastas disponíveis na conta conectada.

Parâmetros: - email_client — objeto de conexão.

Retorno (variáveis de estado): - folders — lista de nomes de pastas disponíveis.

Exemplo:

office365.list_folders($email_client)
folders = $folders

office365.select_folder

Altera a pasta atual para a pasta especificada e recarrega os e-mails dessa pasta.

Parâmetros: - email_client — objeto de conexão. - folder_name — nome da pasta para selecionar.

Retorno (variáveis de estado): - current_folder — nome da pasta selecionada. - emails_count — número total de e-mails na pasta selecionada.

Exemplo:

office365.select_folder($email_client, "Rascunhos")
current_folder = $current_folder
emails_count = $emails_count

office365.move_to

Move o e-mail atual para outra pasta existente.

Parâmetros: - email_client — objeto de conexão. - to_folder — nome da pasta de destino.

Retorno: - Esta ação não retorna variáveis de estado.

Exemplo:

office365.move_to($email_client, "Arquivados")
# sem variáveis para ler

office365.find_attachments

Retorna os anexos do e-mail atual ou filtra por nome parcial.

Parâmetros: - email_client — objeto de conexão. - attach_name (opcional) — nome ou parte do nome do anexo para filtrar.

Retorno (variáveis de estado): - attachments — lista com metadados dos anexos encontrados (cada item contém name, contentBytes, etc.). - attachments_count — número de anexos encontrados.

Exemplo:

office365.find_attachments($email_client, "relatorio")
attachments = $attachments
attachments_count = $attachments_count

Observações: - attachments contém o conteúdo em base64 no campo contentBytes quando for necessário salvar o arquivo.

office365.save_attachment

Salva anexos do e-mail atual para uma pasta local. Evita sobrescrever arquivos existentes renomeando duplicados com sufixo -1, -2, etc.

Parâmetros: - email_client — objeto de conexão. - file_path — pasta local onde os arquivos serão salvos. - attach_name (opcional) — nome parcial para filtrar anexos. - mime_type (opcional) — (não utilizado atualmente, reservado). - only_attachments (opcional) — (não utilizado atualmente, reservado).

Retorno (variáveis de estado): - saved_files — lista com os caminhos completos dos arquivos salvos.

Exemplo:

office365.save_attachment($email_client, "C:/temp", attach_name="fatura")
saved_files = $saved_files

Exceções: - FileNotFoundException — lançada quando nenhum anexo for encontrado para salvar.

office365.send_email

Envia um e-mail usando a conta conectada.

Parâmetros: - email_client — objeto de conexão. - to — lista ou string com destinatários para o campo TO. - subject — assunto da mensagem. - text (opcional) — corpo em texto simples. - html (opcional) — corpo em HTML. - attachments (opcional) — lista de caminhos para arquivos a anexar. - to_cc (opcional) — lista de destinatários em CC. - to_bcc (opcional) — lista de destinatários em BCC.

Retorno (variáveis de estado): - email_sent — booleano indicando sucesso do envio. - status_code — código de status retornado pela API. - message_status — mensagem com detalhes do resultado do envio.

Exemplo:

office365.send_email($email_client, ["[email protected]"], "Assunto", text="texto")
email_sent = $email_sent
status_code = $status_code
message_status = $message_status