.net - 在 Powershell 脚本中将 Azure 信息保护添加到电子邮件

标签 .net azure powershell azure-information-protection

我已经编写了一个发送电子邮件的 Powershell 脚本,但我正在尝试找出一种向其添加 AIP 分类的方法。我的组织使用以下一般分类:

公开
内部
secret

由于在这种情况下分类是内部,我只需要一种在我的脚本中设置它的方法。我当前的脚本(使用 Office 365)是:

$message = New-Object Net.Mail.MailMessage
$emailTo = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a8dddbcdda99e8ccc7c5c9c1c686dcc4cc" rel="noreferrer noopener nofollow">[email protected]</a>'
$emailFrom = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c3b6b0a6b1f183a7acaea2aaadedb7afa7" rel="noreferrer noopener nofollow">[email protected]</a>'
$emailCc = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="285d5b4d5a1b684c4745494146065c444c" rel="noreferrer noopener nofollow">[email protected]</a>'
$smtpServer = 'smtp.domain.tld'
$subject = "Report"
$body = @"
<p><font face = "Calibri" size = "3">Hello,</p>

<p>Please see report.</p>


<br/><br/><font face = "Tempus Sans ITC" size = "3">User 2
<br/>123 Maple Road
<br/>(555) 555-5555 Office
<br/><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6f1a1c0a1d5d2f0b00020e0601411b030b" rel="noreferrer noopener nofollow">[email protected]</a></font>

<br/><br/><img src="cid:attlogo">
"@

$smtp = New-Object Net.Mail.SmtpClient
$smtp.Host = $smtpServer
$smtp.EnableSsl = $true

$logo = "C:\logo.png"
$attlogo = New-Object System.Net.Mail.Attachment($logo)
$attlogo.ContentDisposition.Inline = $True 
$attlogo.ContentDisposition.DispositionType = "Inline" 
$attlogo.ContentType.MediaType = "image/png" 
$attlogo.contentID = "attlogo"

$message.From = $emailFrom
$message.To.Add($emailTo)
$message.Cc.Add($emailCc)
$message.Subject = $subject
$message.Body = $body
$message.IsBodyHtml = $true
$message.Attachments.Add($attlogo)

$smtp.Send($message)

$attlogo.Dispose()

有些人可能想知道为什么我没有使用 Send-MailMessage cmdlet,但在这种情况下,内联图像不能很好地配合它,所以我最终使用了 .Net。

如果有人知道如何将副本发送到 Outlook 邮箱中的“已发送”文件夹,那就太好了。

最佳答案

我们没有办法将其直接应用到您的邮件,因为在您将邮件发送到 SMTP 服务之前,并没有真正的邮件可以应用它。

该标签是否具有保护作用?如果没有,您可以通过直接将 AIP 标签元数据添加到 SMTP header 来实现您的目标。

我们在名为 msip_labels 的 SMTP header 中添加 AIP 标签元数据。如果您拥有应应用的元数据,则可以将此数据插入到每条消息的 header 中。不幸的是,我们目前无法在 AIP PowerShell 模块中获取此数据。不过,我确实在 GitHub 上发布了一些示例,展示了如何获取策略信息。

https://github.com/Azure-Samples/Mipsdk-Dotnet-Policy-Quickstart

该示例将允许您输入标签(尽管它需要在当前状态下进行修改,因为它需要两个标签进行模拟),并获取操作详细信息。您可以修改该应用程序以仅接受单个标签,然后输出元数据操作以了解将应用哪些元数据。然后您可以将其粘贴到 SMTP header 中并发送消息。

如果您必须对文档应用保护,我们还没有可以提供帮助的功能。这有点复杂,因为我们必须从纯文本消息生成 message.rpmsg 文件,然后您需要附加并设置其他 header 。我们的 SDK 中还没有生成 message.rpmsg 的功能。

希望有帮助!如果我能为您解答更多问题,请告诉我。

关于.net - 在 Powershell 脚本中将 Azure 信息保护添加到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58210905/

相关文章:

python - 在 windows powershell 上使用 django-admin

c# - 具有 JPEG 透明度的 MagickNet PNG

azure - 是否可以防止两个进程写入同一个缓存项?

.net - 使用Azure媒体服务更改播放速度(速度)

api - Azure 资源管理器 API 用户的订阅范围授权

sql - 选择条件列但获取子查询返回超过 1 个值

powershell - 递归搜索所有文件夹并非递归查找文件最多的文件夹

powershell - 如何从应用服务的 Azure 备份中排除子文件夹/目录?

.net - ildasm,然后是具有相同元数据的 ilasm

c# - 反序列化可空类型的最佳实践