0

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

4

1 回答 1

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
    }
 }
于 2013-01-25T21:31:11.533 回答