Microsoft 365: Enviar Emails

Tradução automática de Deepl

Sabemos da importância do envio de e-mails, e do facto de ser uma tarefa comum nas aplicações actuais. Muitas pessoas que trabalham com o Office 365 pediram-nos uma API para enviar e-mails através da API gráfica da Microsoft. A funcionalidade OAuth 2.0 foi um pré-requisito para a ligação ao servidor Microsoft e para a introdução de comandos de recuperação de informação do utilizador. Temos o prazer de prosseguir com a gestão de emails, começando com o comando de envio de emails.

HDI Office365 Enviar Correio Electrónico

Ligação de conta

Antes de criar o e-mail, iremos criar o objecto de ligação OAuth2 e o objecto 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"))

PREPARE um correio electrónico

Precisa primeiro de criar o seu objecto de correio electrónico. 4D suporta agora o tipo de recurso de mensagem do gráfico Microsoft. Os exemplos de código neste post e o HDI são feitos com este novo objecto. Mas claro, pode usar um objecto de correio com um formato JMAP, se preferir.

Vamos começar por especificar o autor do e-mail. O autor deve ser o endereço de correio electrónico do utilizador ligado, por isso usamos $office365.user.getCurrent() para preencher este atributo automaticamente:

$email:=New object
$email.from:=New object
$email.from.emailAddress:=New object
$email.from.emailAddress.address:=$office365.user.getCurrent().userPrincipalName

Se desejar especificar um endereço de resposta diferente do endereço

Depois os destinatários (usando diferentes sintaxes):

$addressTo:=New object
$addressTo.emailAddress:=New object
$addressTo.emailAddress.email:="address1@mail.com"

$addressCC:=New object
$addressCC.emailAddress:=New object
$addressCC.emailAddress.email:="address2@mail.com"
$addressCC.emailAddress.name:="Stephen"

// Originating addresses
$email.toRecipients:=new collection($addressTo)
// Carbon Copy
$email.ccRecipients:=new collection($addressCC)

A seguir, vamos acrescentar um assunto:

$email.subject:="Hello world"

E o corpo … Pode especificar dois tipos, um texto:

$email.body:=New object
$email.body.content:="Test content mail"
$email.body.contentType:="text"

ou HTML:

$email.body:=New object
$email.body.content:="<html><body><h1>Test content mail </h1></body></html>"
$email.body.contentType:="html"

Pode adicionar informações adicionais ao seu e-mail, como por exemplo:

  • um pedido de recibo de entrega:
$email.isDeliveryReceiptRequested:=True
  • um pedido de recibo de leitura:
$email.isReadReceiptRequested:=True
  • uma importância “baixa”, “normal” ou “importante”:
$email.importance:="high"

e outras que encontrará na documentação!

Crie um anexo

Para adicionar um anexo, é necessário criar um objecto anexo:

var $attachmentText : Text
$attachmentText:="Simple text attachement content"

var $attachment : Object
BASE64 ENCODE($attachmentText)
$attachment:=New object
$attachment["@odata.type"]:="#microsoft.graph.fileAttachment"
$attachment.contentId:=Generate UUID
$attachment.isInline:=False
$attachment.name:="attachment.txt"
$attachment.contentType:="text/plain"
$attachment.contentBytes:=$attachmentText
$attachment.size:=Length($attachmentText)

E adicioná-lo ao seu e-mail desta forma:

$email.attachments:=New collection($attachment)

Enviar e-mail

Agora que o e-mail está pronto, podemos enviá-lo utilizando a função mail.send() do objecto $office365 que criámos anteriormente:

$status:=$office365.mail.send($email)

E assim, o seu email é enviado!

Verifique esta funcionalidade em acção com o HDI acima e a documentação para mais detalhes!

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.