Código fonte Wiki de Servidor de e-mail (100)

Versão 3.1 por FlowFast em 2024/05/16 17:10

Mostrar últimos autores
1 Cadastro de servidores de e-mail (SMTP)
2
3 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.
4
5
6 Relação de chaves especiais
7
8 |Chave|Descrição
9 |xcape.max.threads|(((
10 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)
11
12 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.
13 )))
14 |xcape.mail.from|(((
15 Define o campo "from" do e-mail.
16
17 Alguns servidores permitem alterar o e-mail de envio para que seja diferente do usuário.
18
19 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>
20 )))
21
22 == Autenticação OAUTH2 ==
23
24
25 === Configuração Office 365 ===
26
27 **Licença necessária:** Office 365 ou Exchange Online
28
29 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))
30
31
32
33 1 - Faça o login no portal Azure (https:~/~/portal.azure.com/#home)
34 2 - Clique em "Microsoft Entra ID"
35 3 - Selecione "Registro de Aplicativos" no menu a esquerda
36 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
37 5 - Se a aplicação já estiver registrada, selecione "Todos os aplicativos"
38 6 - Selecione sua aplicação 
39 7 - Preste atenção nas informações no topo da pagina, você precisará das credenciais do diretório (locatário) e da aplicação:
40 a) ID do aplicativo (cliente)
41 b) ID do diretório (locatário)
42
43 8 - Selecione "Permissões de APIs" no menu a esquerda.
44 9 - Selecione "Adicionar uma permissão"
45 10 - Na nova janela, selecione "APIs que a minha organização usa"
46 11 - Digite "Office 365" na barra de pesquisa
47 12 - Selecione "Office 365 Exchange Online" nos resultados
48 13 - Selecione "Permissões de aplicativo"
49 14 - Abra a sessão "Mail" e marque a permissão "Mail.Send"
50 15 - Abra a sessão "SMTP" e marque a permissão "SMTP. SendAsApp"
51 16 - Clique em "Adicionar permissões" no final da pagina
52 17- Clique em "Conceder consentimento do administrador para ..." ao lado de "Adicionar uma permissão"
53 18 - Selecione "Sim" na nova janela e realize o login com uma conta de administrador se for solicitado
54 19 - Clique em "Certificados e segredos" no menu da esquerda.
55 20 - Clique em "Novo Segredo de cliente"
56 21 - Informe uma descrição e uma data de expiração do segredo (esse segredo deve ser renovado manualmente quando atingir essa data)
57 22 - Clique em "Adicionar"
58 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.
59
60 ===
61 Configuração do Exchange ===
62
63 Informações do portal necessárias:
64
65 1 - Faça login no portal do azure (https:~/~/portal.azure.com/#home)
66 2 - Selecione "Microsoft Entra ID"
67 3 - Selecione "Aplicativos Empresariais" no menu a esquerda
68 4 - Selecione seu aplicativo
69 5 - Anote o valor do "ID do Objeto"
70
71 6 - Abra uma janela de comandos "Powershell" como um administrador do computador.
72 7 - Execute "Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.4.0"
73 8 - Execute "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned"
74 9 - Execute "ExchangeOnlineManagement Import-module"
75 10 -Execute "Connect-ExchangeOnline -Organization [tenantId]" aonde [tenantId] é o valor do "ID do diretório" no azure acima.
76 11 - Entre com uma conta de administrador na janela que irá abrir.
77 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.
78 13 - Execute "Get-ServicePrincipal | fl" para verificar a informação do serviço criado
79 14 - Anote o valor do "ExchangeObjectId"
80 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.
81 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
82 17 - Execute "Set-TransportConfig -SmtpClientAuthenticationDisabled $false"
83
84 OBS: Este comando pode levar ate 30 minutos para ser efetivado
85
86 18 - Execute "Disconnect-ExchangeOnline"
87
88
89 === Configuração Flowfast ===
90
91 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
92
93 **Microsoft (Office)**
94
95 |Chave|Conteúdo|Obs
96 |xcape.mail.xoauth2.provider|(((
97 MS
98 )))|Definir essa valor para que o sistema execute o procedimento necessário para Microsoft
99 |xcape.mail.xoauth2.url|[[https:~~/~~/login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token>>https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token]]|Esta é a URL atual do serviço
100 |xcape.mail.xoauth2.tenant_id|Tenant ID da conta (Locatário)|
101 |xcape.mail.xoauth2.client_id|Client ID do aplicativo|
102 |xcape.mail.xoauth2.client_secret|Client Secret do aplicativo|
103 |xcape.mail.xoauth2.scope|[[https:~~/~~/outlook.office.com/.default>>https://outlook.office.com/.default]]|Dado atual para esse campo
104
105
106
107
108