Microsoft 365: Inviare e-mail

Tradotto automaticamente da Deepl

Conosciamo l’importanza dell’invio di e-mail e il fatto che si tratta di un’attività comune nelle applicazioni odierne. Molte persone che lavorano con Office 365 ci hanno chiesto un’API per inviare e-mail tramite l’API Microsoft Graph. La funzione OAuth 2.0 era un prerequisito per la connessione al server Microsoft e per l’introduzione di comandi per il recupero delle informazioni sugli utenti. Siamo lieti di procedere con la gestione delle e-mail, a partire dal comando invia e-mail.

HDI Office365 Invia posta

Connessione all’account

Prima di creare l’e-mail, creeremo l’oggetto di connessione OAuth2 e l’oggetto 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"))

PREPARARE un’e-mail

Per prima cosa è necessario creare l’oggetto email. 4D supporta ora il tipo di risorsa messaggio di Microsoft Graph. Gli esempi di codice in questo post e l’HDI sono realizzati con questo nuovo oggetto. Ma naturalmente, se si preferisce, si può usare un oggetto mail con un formato JMAP.

Iniziamo specificando l’autore dell’e-mail. L’autore deve essere l’indirizzo e-mail dell’utente collegato, quindi usiamo $office365.user.getCurrent() per riempire automaticamente questo attributo:

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

Se si vuole specificare un indirizzo di risposta diverso dall’indirizzo

Poi i destinatari (usando sintassi diverse):

$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)

Aggiungiamo quindi un oggetto:

$email.subject:="Hello world"

E il corpo… Si possono specificare due tipi, un testo:

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

o HTML:

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

È possibile aggiungere ulteriori informazioni all’e-mail, come ad esempio:

  • una richiesta di ricevuta di consegna:
$email.isDeliveryReceiptRequested:=True
  • una richiesta di ricevuta di lettura:
$email.isReadReceiptRequested:=True
  • un’importanza “bassa”, “normale” o “importante”:
$email.importance:="high"

e altre che troverete nella documentazione!

Creare un allegato

Per aggiungere un allegato, è necessario creare un oggetto allegato:

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 aggiungerlo all’e-mail in questo modo:

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

Invia e-mail

Ora che l’email è pronta, possiamo inviarla usando la funzione mail.send() dell’oggetto $office365 che abbiamo creato prima:

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

E così, l’e-mail è stata inviata!

Guardate questa funzione in azione con l’HDI qui sopra e la documentazione per maggiori dettagli!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.