在Outlook中自动发送/接收电子邮件

时间:2013-01-25 08:34:56

标签: outlook outlook-addin outlook-2013

有没有办法将Outlook(2013)设置为在激活时自动发送/接收电子邮件? 您现在可以做的是指导Outlook定期检查电子邮件,当然,它会在开始时检查电子邮件。没关系,我是粉丝......但大多数时候Outlook运行最小化。一旦我恢复它(即将Outlook带到前面),我希望它执行自动同步,相当于按下发送/接收文件夹。 我同意这不是一个关键问题,甚至不是关闭,但对我来说这是有道理的。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用SendKeys并发送执行发送/接收操作的 F9 热键。我可能只是自己做这个键击,但您可以通过编程方式附加到Explorer.Activate事件并生成此事件。您还可以添加去抖动来控制频率,以免淹没您的Exchange服务器。

DateTime lastRun = DateTime.Now; // debouce control

void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    Application.Explorers.NewExplorer += new Outlook.ExplorersEvents_NewExplorerEventHandler(explorers_NewExplorer);
}

void explorers_NewExplorer(Outlook.Explorer explorer)
{
    ((Outlook.ExplorerEvents_10_Event)explorer).Activate += new Outlook.ExplorerEvents_10_ActivateEventHandler(ExplorerWrapper_Activate);
}

void ExplorerWrapper_Activate()
{
    if ((DateTime.Now - lastRun).TotalMilliseconds > 500) // trigger limit 500ms
    {
        lastRun = DateTime.Now;
        System.Windows.Forms.SendKeys.Send("{F9}"); // hotkey to send/receive
    }
 }