Click or drag to resize

OutputEmailDeviceMSGraphScriptTemplate Field

Default script template for Microsoft Graph

Namespace: Seal.Model
Assembly: SealLibrary (in SealLibrary.dll) Version: 10.0.1.0+a44cd3a7f03c2bf3cdbd971a878c679e40bed08a
Syntax
C#
public const string MSGraphScriptTemplate = "@using Microsoft.Graph.Me.SendMail\n@using Microsoft.Graph.Models\n@using Microsoft.Graph\n@using Azure.Identity\n@using System.IO\n\n@{\n    OutputEmailDevice.EmailDefinition def = Model;\n    var device = def.device;\n\n    //Sample to be modified to send an Email via MS Graph\n\n    var scopes = new[] { ".default" };\n    // TenantId\n    var tenant = "23798d76-74cd-4bfb-9f52-fb3495af6b8b";\n    // ClientId\n    var client = "07399128-13f4-4523-8989-3d141598b658";\n    // UserId\n    var user = "e5c47ab9-54c7-4e51-8626-0f02a72b6dd7";\n    \n    // Credential\n    var credentials = new ClientSecretCredential(tenant, client, device.ClearAzureSecret);\n\n    // Graph client instance\n    var graphClient = new GraphServiceClient(credentials, scopes);\n\n    // Recipients\n    var to = new List<Recipient>();\n    var cc = new List<Recipient>();\n    var bcc = new List<Recipient>();\n    foreach (var addr in Helper.GetEmailAddresses(def.to)) to.Add(new Recipient() { EmailAddress = new Microsoft.Graph.Models.EmailAddress() { Address = addr } });\n    foreach (var addr in Helper.GetEmailAddresses(def.cc)) cc.Add(new Recipient() { EmailAddress = new Microsoft.Graph.Models.EmailAddress() { Address = addr } });\n    foreach (var addr in Helper.GetEmailAddresses(def.bcc)) bcc.Add(new Recipient() { EmailAddress = new Microsoft.Graph.Models.EmailAddress() { Address = addr } });\n\n    // Body\n    var messageBody = new ItemBody\n    {\n        Content = def.body,\n        ContentType = def.isHtmlBody ? BodyType.Html : BodyType.Text\n    };\n\n    // Message\n    var message = new Microsoft.Graph.Models.Message\n    {\n        From = new Recipient() { EmailAddress = new Microsoft.Graph.Models.EmailAddress() { Address = def.sender } },\n        Subject = def.subject,\n        Body = messageBody,\n        ToRecipients = to,\n        CcRecipients = cc,\n        BccRecipients = bcc,\n    };\n\n    // Attachment\n    if (File.Exists(def.attachPath))\n    {\n        // Create the message with attachment.\n        byte[] contentBytes = File.ReadAllBytes(def.attachPath);\n        message.Attachments = new List<Attachment>();\n        message.Attachments.Add(new FileAttachment\n        {\n            OdataType = "#microsoft.graph.fileAttachment",\n            ContentBytes = contentBytes,\n            Name = def.attachName\n        });\n    }\n\n    var body = new Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody\n    {\n        Message = message,\n        SaveToSentItems = true,\n    };\n\n    // PostAsync method call\n    await graphClient.Users[user].SendMail.PostAsync(body);\n}\n"

Field Value

String
See Also