如何自动设置电子邮件的分类?

时间:2016-05-13 16:29:44

标签: c# .net vba powershell outlook

我有以下powershell脚本:

$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.To = "receiver@host.com"
$Mail.Subject = "Hello"
$Mail.Body ="World"
$Mail.Send()

但是当我执行它时,我必须手动选择电子邮件的分类:出现 TITUS弹出,其中“选择分类”标题选择框包含以下项目:公共,内部仅使用和私人。我必须选择一个项目并单击“确定”,然后发送电子邮件。

该脚本应该是按计划运行的作业,因此我根本不想与脚本进行交互。

我已经走过了the whole msdn page of MailItem,但我没有遇到任何类似于Classificaiton的事情。我错过了什么?

我不是服务器的管理员,因此我无权更改任何内容。

PS:我选择C#标签只是因为C#具有与Outlook交互的相同API

2 个答案:

答案 0 :(得分:1)

首先,Outlook与任何其他Office应用程序一样,并非设计用于无人参与的方案。它可以并将显示模式提示。

其次,要发送消息,您可以使用直接SMTP,EWSExtended MAPI(仅限C ++或Delphi)或Redemption(其RDO个对象系列包装扩展MAPI,可以访问许多语言。)

在您的特定情况下,它确实看起来像一个显示对话框的自定义第三方插件。

答案 1 :(得分:0)

邮件对象无法设置电子邮件对象的分类。如果将对象传递给Get-Member,您将看到分类和/或更改它的方法没有可更改的属性。您可以通过运行以下命令找到它:

$Mail | Get-Member

此外,如果查看属性列表,则没有一个与分类相关的内容。

$Mail | Format-List

blog post可能会对您有所帮助,但它似乎比您正在寻找的解决方案更复杂。这个使用Exchange而不是Outlook客户端。