Servidor de e-mail (100)

Versão 3.2 por FlowFast em 2024/09/10 08:22

Cadastro de servidores de e-mail (SMTP)

O envio de e-mail é feito através da biblioteca javamail. Para configuração são usados um conjunto de chaves e valores de acordo com cada servidor.

Relação de chaves especiais

ChaveDescrição
xcape.max.threads

Número máximo de threads que poderão conectar simultaneamente no servidor para evitar bloqueios. (A Miscrosoft, por exemple, limita em 3 conexões simultâneas)

Como o envio dos e-mails é individual e pode ser assíncrono ao disparar muitos e-mails, com um robô, por exemplo, sem esse parâmetro configurado o sistema irá abrir diversas threads para enviar esses e-mails e processará várias ao mesmo tempo.

xcape.mail.from

Define o campo "from" do e-mail.

Alguns servidores permitem alterar o e-mail de envio para que seja diferente do usuário.

Pode ser útil também para poder dar um "Nome" para o e-mail, para que quem recebe visualizar esta descrição e não somente o e-mail, utilizando essa sintaxe "Nome<seuemail@dominio.com.br>. ex: FlowFast<contato@xcape.com.br>

xcape.mail.reply-toDefine o campo "reply-to"(responder para) do e-mail. Com esse informação quando a pessoa responder este será o e-mail padrão da resposta utilizado.

Autenticação OAUTH2

Configuração Office 365

Licença necessária: Office 365 ou Exchange Online

OBS: Atribuir para o usuário da conta de e-mail a licença. (Pode levar ate 30 min para a licença ser efetivamente aplicada ao usuário (aguardar))
 

1 - Faça o login no portal Azure (https://portal.azure.com/#home)
2 - Clique em "Microsoft Entra ID"
3 - Selecione "Registro de Aplicativos" no menu a esquerda
4 - Se seu aplicativo não estiver registrado, verifique o procedimento de criação de aplicativos em https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
5 - Se a aplicação já estiver registrada, selecione "Todos os aplicativos"
6 - Selecione sua aplicação 
7 - Preste atenção nas informações no topo da pagina, você precisará das credenciais do diretório (locatário) e da aplicação:
    a) ID do aplicativo (cliente)
    b) ID do diretório (locatário)

8 - Selecione "Permissões de APIs" no menu a esquerda.
9 - Selecione "Adicionar uma permissão"
10 - Na nova janela, selecione "APIs que a minha organização usa"
11 - Digite "Office 365" na barra de pesquisa
12 - Selecione  "Office 365 Exchange Online" nos resultados
13 - Selecione "Permissões de aplicativo"
14 - Abra a sessão "Mail" e marque a permissão "Mail.Send"
15 - Abra a sessão "SMTP" e marque a permissão "SMTP. SendAsApp"
16 - Clique em "Adicionar permissões" no final da pagina
17- Clique em "Conceder consentimento do administrador para ..." ao lado de "Adicionar uma permissão"
18 - Selecione "Sim" na nova janela e realize o login com uma conta de administrador se for solicitado
19 - Clique em "Certificados e segredos" no menu da esquerda.
20 - Clique em "Novo Segredo de cliente"
21 - Informe uma descrição e uma data de expiração do segredo (esse segredo deve ser renovado manualmente quando atingir essa data)
22 - Clique em "Adicionar"
23 - Anote o valor da coluna "Valor" do segredo gerado. Essa informação somente está visivel durante um pequeno período de tempo depois da criação.


Configuração do Exchange

Informações do portal necessárias:

1 - Faça login no portal do azure (https://portal.azure.com/#home)
2 - Selecione "Microsoft Entra ID"
3 - Selecione "Aplicativos Empresariais" no menu a esquerda
4 - Selecione seu aplicativo
5 - Anote o valor do "ID do Objeto"

6 - Abra uma janela de comandos "Powershell" como um administrador do computador.
7 - Execute "Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.4.0"
8 - Execute "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned"
9 - Execute "ExchangeOnlineManagement Import-module"
10 -Execute "Connect-ExchangeOnline -Organization [tenantId]" aonde [tenantId] é o valor do "ID do diretório" no azure acima.
11 - Entre com uma conta de administrador na janela que irá abrir.
12 - Execute "New-ServicePrincipal -AppId [appId] -ObjectId [objId]" onde [appId] é o valor de "ID do aplicativo" obtido no portal [objId] é o valor anotado no passo 5.
13 - Execute "Get-ServicePrincipal | fl" para verificar a informação do serviço criado
14 - Anote o valor do "ExchangeObjectId"
15 - Execute "Add-MailboxPermission -Identity "[username]" -User [exchangeId] -AccessRights FullAccess" onde [username] é a conta de email de origem que você deseja enviar os emails e [exchangeId] é o valor anotado no passo 14.
16 -  Valide que a permissao foi adicionada com  "Get-MailboxPermission -Identity "[username]" e valide que exista um registro com o seu [objId] do passo 5
17 - Execute "Set-TransportConfig -SmtpClientAuthenticationDisabled $false"

OBS: Este comando pode levar ate 30 minutos para ser efetivado

18 - Execute  "Disconnect-ExchangeOnline"

Configuração Flowfast

Para utilizar autenticação OAUTH2 é necessário adicionar a chave mail.smtp.auth.mechanisms com o valor XOAUTH2, e as seguintes chave de acordo com o servidor

Microsoft (Office)

ChaveConteúdoObs
xcape.mail.xoauth2.provider

MS

Definir essa valor para que o sistema execute o procedimento necessário para Microsoft
xcape.mail.xoauth2.urlhttps://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/tokenEsta é a URL atual do serviço
xcape.mail.xoauth2.tenant_idTenant ID da conta (Locatário) 
xcape.mail.xoauth2.client_idClient ID do aplicativo 
xcape.mail.xoauth2.client_secretClient Secret do aplicativo 
xcape.mail.xoauth2.scopehttps://outlook.office.com/.defaultDado atual para esse campo