我正在使用C#和outlook Interop发送邮件,我想知道收件人是否处于“不在办公室”状态。当我手动创建邮件时,可以在Outlook中找到状态,但我不知道如何在C#中找到它。
在outlook中,它显示如下:
有谁知道怎么做?感谢。
答案 0 :(得分:1)
您可以使用以下代码。我的假设是,您可以在发送电子邮件之前检查状态,在功能区中或发送电子邮件事件期间添加新按钮。我在发送事件期间放了代码
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,则“ free”由字符0表示,所有其他状态由字符1表示。
如果CompleteFormat为True,则返回与上述相同的长度字符串,但是字符现在对应于 OlBusyStatus 常量。
指示用户的可用性。
OLBUSYSTATUS枚举(展望)
名称值说明
olBusy 2用户正忙。 olFree 0用户可用。 olOutOfOffice 3用户不在办公室。 暂定1用户已安排暂定约会。 olWorkingElsewhere 4用户正在远离办公室的地方工作。
详细信息:https://docs.microsoft.com/en-us/office/vba/api/outlook.olbusystatus