【问题标题】:How to get the result of Outlook voting button's in C#如何在 C# 中获取 Outlook 投票按钮的结果
【发布时间】:2020-05-13 13:18:27
【问题描述】:

我用 C# 从 Outlook 发送了一封带有投票按钮的电子邮件。代码如下。邮件发送正确,收件人回答投票,这里也没有问题。

Outlook._Application _app = new Outlook.Application();
Outlook.MailItem mail = (Outlook.MailItem)_app.CreateItem(Outlook.OlItemType.olMailItem);
mail.To = "xxx@abc.com";
mail.Subject = "this is subject";
mail.Body = "this is body";
mail.Importance = Outlook.OlImportance.olImportanceNormal;
mail.VotingOptions = "Agree;Disagree";
((Outlook.MailItem)mail).Send();
MessageBox.Show("mail sent");

我的问题是我有一个 SQL Server 数据库,并且在我的数据库中看起来像(表名是 INFO);

USERS       MAIL             STATUS
Jack        jack@xyz.com     on hold
Simon       simon@xyz.com    on hold

当收件人回复邮件时,我如何更新我的STATUS

举例说明;我使用 C# 程序(Windows 窗体)在 Outlook 上使用投票按钮(“Agree;Disagree”)向 Jack 发送和发送电子邮件。杰克收到消息并通过投票小组回复我的电子邮件。在他回答后,一封电子邮件来了,上面写着sender reply:Agreesender reply:Disagree

如何将状态 "on hold" 更新为用户名为 Jack 的“Agree”。

【问题讨论】:

  • @DaleK 我当然知道如何在 sql 中编写更新语句......问题是我怎么知道答案是什么。我不知道如何从 Outlook 到我的 c#program 得到答案
  • 您的问题措辞是“我如何更新状态” - 也许澄清一下,如何阅读来自 Outlook 的响应。
  • 您确定要从 Outlook 读取它,而不是从 Exchange Server 或 POP 服务器读取它吗?即您的程序必须与接收回复的 Outlook 在同一台机器上运行?
  • 没关系 :) 这就是 cmets 在这里的原因 - 澄清一下。
  • 有很多链接解释了如何做到这一点 - 你可以从所有这些中学习。

标签: c# sql sql-server outlook


【解决方案1】:

您需要处理 Application 类的 NewMailEx 事件,该事件在新消息到达收件箱时以及发生客户端规则处理之前触发。您可以使用 EntryIDCollection 数组中返回的条目 ID 来调用 NameSpace.GetItemFromID 方法并处理该项目。

MailItem 类的VotingResponse 属性返回一个字符串,指定邮件消息的投票响应。此属性通常设置为由VotingOptions 属性在回复原始消息时返回的分隔值之一。

【讨论】:

    猜你喜欢
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多