You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft.Office.Interop.Outlook创建规则时缺失延迟交付动作的解决方法

解决Outlook 2019通过Interop创建延迟1分钟发送邮件规则的问题

要实现延迟1分钟发送的规则动作,你需要使用RuleActions.Defer属性,设置延迟分钟数并启用该动作。以下是补充完整后的代码:

string ruleName = "rules defer delivery by 1 min";
Microsoft.Office.Interop.Outlook.Application OutlookApplication = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.Rules rules = null;
try
{
    rules = OutlookApplication.Session.DefaultStore.GetRules();
}
catch (System.Exception ex)
{
    MessageBox.Show($"Error:({ex.Message})");
    return;
}
// 创建发送类规则
Microsoft.Office.Interop.Outlook.Rule rule = rules.Create(ruleName, Microsoft.Office.Interop.Outlook.OlRuleType.olRuleSend);
rule.Name = ruleName;
// 禁用所有条件,确保规则应用于所有已发送邮件
rule.Conditions.From.Enabled = false;
rule.Conditions.Subject.Enabled = false;

// 配置延迟交付动作
rule.Actions.Defer.Enabled = true;
// 设置延迟时间为1分钟
rule.Actions.Defer.Minutes = 1;

rule.Enabled = true;
try
{
    rules.Save(true);
    MessageBox.Show($"success role creation ({ruleName})");
}
catch (System.Exception ex)
{
    MessageBox.Show($"Error:({ex.Message})");
}

关键说明

  • RuleActions.Defer是专门用于延迟邮件交付的动作对象,必须设置Enabled = true才会生效
  • Minutes属性直接设置延迟的分钟数,填1即可满足需求
  • 你之前禁用所有条件的操作是正确的,这样规则会对所有你发送的邮件生效

其他解决方案

如果不需要通过代码自动创建,也可以手动在Outlook中配置:

  • 打开Outlook,点击「文件」→「管理规则和通知」
  • 点击「新建规则」,选择「对我发送的邮件应用规则」,点击下一步
  • 不勾选任何条件,直接点击下一步(弹出提示时选择「是」确认应用于所有发送邮件)
  • 在动作列表中选择「延迟交付X分钟」,点击下方的「X分钟」设置为1分钟
  • 完成规则命名并保存即可

内容的提问来源于stack exchange,提问作者Orion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:53:02