【发布时间】:2020-06-27 22:49:43
【问题描述】:
我正在使用 C# 和 Outlook Interop 发送邮件,我想知道收件人是否处于“不在办公室”状态。当我手动创建邮件时,可以在outlook中找到状态,但我不知道如何在C#中找到它。
在outlook中是这样显示的:
有人知道怎么做吗?谢谢。
【问题讨论】:
-
@Maverick VBA 与 c# 完全不同
我正在使用 C# 和 Outlook Interop 发送邮件,我想知道收件人是否处于“不在办公室”状态。当我手动创建邮件时,可以在outlook中找到状态,但我不知道如何在C#中找到它。
在outlook中是这样显示的:
有人知道怎么做吗?谢谢。
【问题讨论】:
您可以使用以下代码。我的假设是,您可以在发送电子邮件状态之前在功能区中添加新按钮或在发送电子邮件事件期间进行检查。我在发送事件期间输入代码
if(Item is Outlook.MailItem)
{
if (Item is Outlook.MailItem)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
Outlook.Recipient recipient = mailItem.Recipients[0];
var result = recipient.FreeBusy(DateTime.Now, 60 * 24);
}
}
您需要检查结果值。
如果可选参数 CompleteFormat 被省略或为 False,则“空闲”由字符 0 指示,所有其他状态由字符 1 指示。
如果 CompleteFormat 为 True,则返回与上面定义的长度相同的字符串,但字符现在对应于 OlBusyStatus 常量。
表示用户的可用性。
OLBUSYSTATUS 枚举(展望)
名称值说明
olBusy 2 用户正忙。 olFree 0 用户可用。 olOutOfOffice 3 用户不在办公室。 olTentative 1 用户安排了一个暂定约会。 olWorkingElsewhere 4 用户在远离办公室的位置工作。
详情:https://docs.microsoft.com/en-us/office/vba/api/outlook.olbusystatus
【讨论】: