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!