Para acessar os dados no Microsoft 365, tal como os e-mails, a Microsoft está a depreciar a autenticação básica para IMAP e POP3 e está a promover cada vez mais a API gráfica.
Com este último conjunto de funções que inclui todas as funcionalidades para gerir pastas do 4D v20, tem no 4D NetKit um conjunto de funções para gerir as suas caixas de correio através da programação com o Microsoft Graph API.
Neste post do blog, veremos como criar uma nova pasta de correio e renomeá-la e apagá-la.
Ligação de conta
Antes de começarmos, vamos criar o objeto de ligação OAuth2 e o objeto Office 365.
var $oAuth2: cs.NetKit.OAuth2Provider
var $office365 : cs.NetKit.Office365
$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$office365:=cs.NetKit.Office365.new($oAuth2;\
New object("mailType"; "Microsoft"))
Criar uma pasta de correio.
Pode criar uma nova pasta “Backup” para guardar os seus emails com a função .createFolder():
// Cria uma nova pasta na raiz
$status:=$office365.mail.createFolder("Backup")
If ($status.success)
$folderId:=$status.id
// Move seu email na nova pasta
$status:=$office365.mail.move($mailId; $folderId)
End if
Renomear uma pasta de correio eletrônico
Pode alterar o nome de uma pasta graças à .renameFolder() funç?o. Por exemplo, podemos renomear “Backup” para “Backup 2022”:
// Renomeia uma pasta
$status:=$office365.mail.renameFolder($folderId; "Backup 2022")
$folderId:=$status.id
Eliminar uma pasta de correio
Se não precisar do correio na sua pasta, pode apagá-lo com a função .deleteFolder():
$status:=$office365.mail.deleteFolder($folderId)
Com este último conjunto de comandos, pode gerir as suas caixas de correio através do Graph API, como com SMTP, IMAP, ou POP3. Se ainda não o fez, pode consultar aqui os outros posts do blogue sobre gestão de caixas de correio:
- Acesso 4D e Microsoft 365
- Microsoft 365: Enviar Emails
- Microsoft 365: Receber e-mails com o Microsoft Graph API
- Microsoft 365: Copiar, mover, responder e apagar e-mails com o Microsoft Graph API
Consulte esta funcionalidade com o HDI e a documentação para mais detalhes!