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).
Retornar:
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.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.
Retornar:
attachments— lista com metadados dos anexos encontrados (cada item contémname,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.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 poroffice365.create_office365_client.
Retornar:
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.list_folders
Retorna a lista de pastas disponíveis na conta conectada.
Parâmetros:
email_client— objeto de conexão.
Retornar:
folders— lista de nomes de pastas disponíveis.
Exemplo:
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.
Retornar:
- Esta ação não retorna variáveis de estado.
Exemplo:
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.
Retornar:
- mesmos campos de
get_current_email(id,from,from_address,subject,date,has_attachments,html_body,check_read)
Exemplo:
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.
Retornar:
- mesmos campos de
get_current_email
Exemplo:
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).
Retornar:
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.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.
Retornar:
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.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.
Retornar:
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