Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Varejo Supermercados

Linha de Produto:

Linha RMS

Segmento:

Varejo

Módulo:

Conector NFE

Função:Recebimento de Email
País:Brasil
Ticket:


Requisito/Story/Issue (informe o requisito relacionado) :

MTRS-7506
MTRS-7538
MTRS-7657
MTRS-8611


02. SITUAÇÃO/REQUISITO

Necessário melhoria na tecnologia de acesso a emails visando maior segurança e controle de dados

03. SOLUÇÃO

Foi necessário alterar a tecnologia de .Net Framework 3.5 para 4.8 e o tipo de comunicação de POP para IMAP, sendo assim para a maioria dos provedores, incluindo a Microsoft que será utilizado aqui, terão a porta de conexão alterada sendo o padrão 993

Será utilizado o Azure em inglês para a documentação


  1. Azure
    1.  
      1. Ir até App Registrations
      2. Clicar em New registration


      3. Escolher um nome (recomendamos como ConectorNFE para ser fácil de achar posteriormente) e colocar como Multitenant
         

      4. Copie o Application(cliente) ID e o Directory (tenant) ID da tela aberta para ser usado mais tarde no processo:


      5. Vá em Certificates & Secrets e clique em New client secret, selecione a duração e um nome


      6. Ao clicar em Add ele irá criar um novo sergredo e este valor só poderá ser copiado e obtido neste momento então é crucial que seja já copiado neste momento e recomendamos armazená-lo por segurança.


        Ao tentar voltar para a tela futuramente o valor ficará da seguinte forma e não poderá ser copiado:


      7. Agora vamos em API permissions e adicionar uma permissão clicando em Add a permission e colocar as seguintes permissões:


      8. Clicar em Grant admin consente, para esta etapa será necessário estar logado como a conta admin do Azure


      9. Rodar o seguinte código:
        Importante verificar que a conta a ser logada nos Connects deve ser a conta do admnistrator do Azure

        [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12'

        Get-ExecutionPolicy

        Set-ExecutionPolicy RemoteSigned

        Install-Module ExchangeOnlineManagement

        Install-Module -Name AzureAD

        Import-module AzureAD

        Import-module ExchangeOnlineManagement 

        $Tenant = <Directory (tenant) ID>

        Connect-AzureAd -Tenant $Tenant

        Connect-ExchangeOnline -Organization $Tenant

        $App = Get-AzureADServicePrincipal -SearchString <Nome Aplicativo>

        New-ServicePrincipal -AppId $App.AppId -ServiceId $App.ObjectId -DisplayName "Conector IMAP"

        Add-MailboxPermission -Identity <Email a ser utilizado> -User $App.ObjectId -AccessRights FullAccess

        Imagem exemplo:


  2. Conector
    1. No ConectorNFE  -> Configuração -> Parâmetros preencher os seguintes campos:


      O campo scopo é recomendado deixar como da imagem
      O campo Nome da Pasta no Email é a pasta para o qual será observado os emails, caso deseje a pasta principal basta colocar Inbox
      Cliente(Aplicativo) ID = Application (client) ID
      Diretório(Locatário) ID = Directory (tenant) ID

    2. Ativar a configuração de banco nos parâmetros de banco setando o parâmetro NFEUSAIMAP como S


Obs: Se o conector estiver com problemas na primeira abertura após esta implantação é possível que seja pela falta das tags no arquivo Config.xml sendo assim favor inserir as seguintes tags vazias seguinto a estrutura do arquivo:
    <nfeImapClientId></nfeImapClientId>
    <nfeImapScope></nfeImapScope>
    <nfeImapSecVal></nfeImapSecVal>
    <nfeImapTenantId></nfeImapTenantId>
    <nfeImapFolderName></nfeImapFolderName>