使用C#发送带有Outlook的邮件时,如何确定收件人是否会发送自动回复?

时间:2016-11-23 07:40:50

标签: c# email outlook

我正在使用C#和outlook Interop发送邮件,我想知道收件人是否处于“不在办公室”状态。当我手动创建邮件时,可以在Outlook中找到状态,但我不知道如何在C#中找到它。

在outlook中,它显示如下:

autoreply

有谁知道怎么做?感谢。

1 个答案:

答案 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