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
Chave | Descriçã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-to | Define 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)
Chave | Conteúdo | Obs |
xcape.mail.xoauth2.provider | MS | Definir essa valor para que o sistema execute o procedimento necessário para Microsoft |
xcape.mail.xoauth2.url | https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token | Esta é a URL atual do serviço |
xcape.mail.xoauth2.tenant_id | Tenant ID da conta (Locatário) | |
xcape.mail.xoauth2.client_id | Client ID do aplicativo | |
xcape.mail.xoauth2.client_secret | Client Secret do aplicativo | |
xcape.mail.xoauth2.scope | https://outlook.office.com/.default | Dado atual para esse campo |