Víme, jak je odesílání e-mailů důležité a že se jedná o běžnou úlohu v dnešních aplikacích. Mnoho lidí pracujících se službou Office 365 nás požádalo o rozhraní API pro odesílání e-mailů prostřednictvím rozhraní Microsoft Graph API. Funkce OAuth 2.0 byla předpokladem pro připojení k serveru Microsoft a pro zavedení příkazů pro načítání informací o uživatelích. Jsme rádi, že můžeme pokračovat ve správě e-mailů, počínaje příkazem odeslat e-mail.
Připojení k účtu
Před vytvořením e-mailu vytvoříme objekt připojení OAuth2 a objekt 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"))
PŘIPRAVTE e-mail
Nejprve je třeba vytvořit objekt e-mailu. Systém 4D nyní podporuje typ prostředku zprávy Microsoft Graph. Příklady kódu v tomto příspěvku a HDI jsou provedeny s tímto novým objektem. Pokud však dáváte přednost, můžete samozřejmě použít poštovní objekt s formátem JMAP.
Začněme zadáním autora e-mailu. Autorem musí být e-mailová adresa připojeného uživatele, takže k automatickému vyplnění tohoto atributu použijeme $office365.user.getCurrent():
$email:=New object
$email.from:=New object
$email.from.emailAddress:=New object
$email.from.emailAddress.address:=$office365.user.getCurrent().userPrincipalName
Pokud chcete zadat jinou adresu pro zaslání odpovědi než adresu
Pak adresáty (s použitím různých syntaxí):
$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)
Dále přidáme předmět:
$email.subject:="Hello world"
A tělo … Můžete zadat dva typy, text:
$email.body:=New object
$email.body.content:="Test content mail"
$email.body.contentType:="text"
nebo HTML:
$email.body:=New object
$email.body.content:="<html><body><h1>Test content mail </h1></body></html>"
$email.body.contentType:="html"
Do e-mailu můžete přidat další informace, jako např:
- žádost o potvrzení o doručení:
$email.isDeliveryReceiptRequested:=True
- žádost o potvrzení o přečtení:
$email.isReadReceiptRequested:=True
- „nízká“, „normální“ nebo „důležitá“ důležitost:
$email.importance:="high"
a další, které najdete v dokumentaci!
Vytvoření přílohy
Chcete-li přidat přílohu, musíte vytvořit objekt přílohy:
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)
A přidejte jej do e-mailu takto:
$email.attachments:=New collection($attachment)
Odeslat e-mail
Nyní, když je e-mail připraven, můžeme jej odeslat pomocí funkce mail.send() objektu $office365, který jsme vytvořili dříve:
$status:=$office365.mail.send($email)
A tak je váš e-mail odeslán!
Podívejte se na tuto funkci v akci pomocí výše uvedeného HDI a dokumentace, kde najdete další podrobnosti!