Enviar e-mails através do Microsoft 365 (Graph API)
Este guia orienta-o no processo de ligação do ParkFlow a uma caixa de correio do Microsoft 365, para que as suas confirmações de reserva, faturas e notificações sejam entregues através do seu próprio tenant do Microsoft 365 via Microsoft Graph API.
Por que Graph API e não SMTP? A Microsoft está a desativar progressivamente a Autenticação Básica para SMTP, IMAP e POP no Exchange Online. A Microsoft Graph API é a forma suportada e de longo prazo para enviar correio a partir de uma caixa de correio do Microsoft 365.
O que vai precisar
Antes de começar, certifique-se de que tem:
- Uma subscrição do Microsoft 365 (ou Office 365) que inclua o Exchange Online — por exemplo Business Basic, Business Standard, E1, E3, F3, ou qualquer plano que lhe forneça caixas de correio.
- Acesso de administrador ao seu Microsoft Entra ID (anteriormente Azure Active Directory). Apenas um administrador pode criar um registo de aplicação e conceder a permissão necessária para enviar correio.
- Uma caixa de correio para enviar — normalmente uma caixa de correio partilhada como
noreply@yourcompany.comou uma caixa de correio de utilizador normal. A caixa de correio não precisa de palavra-passe — o Microsoft Graph utiliza as credenciais da aplicação, não um início de sessão de utilizador. - Windows PowerShell com o módulo ExchangeOnlineManagement — utilizado uma vez, durante a configuração, para restringir as caixas de correio a partir das quais a aplicação pode enviar. (As instruções de instalação estão incluídas abaixo.)
- Cerca de 20 minutos do início ao fim.
Parte 1 — Registar uma aplicação no Microsoft Entra ID
O registo da aplicação é a forma como o Microsoft 365 irá reconhecer e autorizar o ParkFlow a enviar correio em seu nome.
1.1 Criar o registo da aplicação
- Aceda a https://portal.azure.com e inicie sessão como administrador.
- Abra o Microsoft Entra ID (utilize a barra de pesquisa no topo se não o conseguir ver).
- No menu à esquerda, selecione Registos de aplicações e clique em + Novo registo.
- Preencha o formulário:
- Nome:
ParkFlow Mail(ou qualquer outro — só você o verá). - Tipos de conta suportados: Contas apenas neste diretório organizacional (inquilino único).
- URI de redirecionamento: deixar vazio — o ParkFlow não precisa deste campo para este fluxo.
- Nome:
- Clique em Registar.
Será redirecionado para a página de descrição geral da aplicação.
1.2 Copiar os IDs
Na página de descrição geral, copie e guarde estes dois valores — irá colá-los no ParkFlow mais tarde:
- ID da Aplicação (cliente)
- ID do Diretório (inquilino)
1.3 Conceder a permissão Mail.Send
- No menu à esquerda da aplicação, clique em Permissões de API.
- Clique em + Adicionar uma permissão.
- Selecione Microsoft Graph.
- Selecione Permissões de aplicação (não Delegadas).
- Pesquise por Mail.Send, marque a caixa e clique em Adicionar permissões.
- De volta à página de permissões de API, clique em Conceder consentimento de administrador para <a sua organização> e confirme.
A coluna Estado para Mail.Send deverá agora mostrar um visto verde.
Limpeza opcional: Se a lista contiver uma permissão
User.Readpredefinida adicionada automaticamente pelo Azure, pode removê-la — Mail.Send é a única permissão de que o ParkFlow necessita.
1.4 Criar um segredo de cliente
- No menu à esquerda, clique em Certificados e segredos.
- Em Segredos de cliente, clique em + Novo segredo de cliente.
- Atribua uma descrição (por exemplo,
ParkFlow Mail) e escolha uma expiração (12–24 meses é o habitual). - Clique em Adicionar.
- Copie imediatamente o
Valordo segredo. Assim que sair desta página, o valor ficará oculto para sempre.
Deverá agora ter três valores anotados:
- ID do Diretório (inquilino)
- ID da Aplicação (cliente)
- Valor do segredo de cliente
Mantenha estes valores confidenciais — qualquer pessoa que possua os três pode enviar correio em nome do seu tenant.
Parte 2 — Restringir as caixas de correio que a aplicação pode utilizar
Leia esta secção com atenção. A permissão
Mail.Send, por predefinição, permite que a aplicação envie correio como qualquer utilizador na sua organização. Deve restringi-la apenas à(s) caixa(s) de correio que pretende que o ParkFlow utilize. A Microsoft recomenda explicitamente este passo — caso o ignore, um segredo de cliente comprometido poderá ser utilizado para enviar correio a partir do endereço de qualquer utilizador.
O acesso é restringido com o cmdlet PowerShell Application Access Policy, o que demora cerca de um minuto.
2.1 Instalar o módulo PowerShell do Exchange Online (uma vez)
Abra o Windows PowerShell como Administrador e execute:
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Aceite quaisquer avisos relativos ao repositório PSGallery.
2.2 Iniciar sessão no Exchange Online
Connect-ExchangeOnline -UserPrincipalName admin@yourcompany.com
Substitua o endereço pela sua conta de administrador do Microsoft 365. Será aberta uma janela do browser para iniciar sessão.
2.3 Criar a política de acesso
Substitua os dois valores destacados pelos seus próprios:
<APPLICATION_CLIENT_ID>— o ID da Aplicação (cliente) do passo 1.2.noreply@yourcompany.com— a caixa de correio a partir da qual o ParkFlow irá enviar.
``powershell
New-ApplicationAccessPolicy -AppId "" -PolicyScopeGroupId "noreply@yourcompany.com"