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

使用CSOM管理SharePoint 2013列表邮件设置及迁移等效代码咨询

SharePoint CSOM 实现列表传入邮件设置与检索

我完全理解你从Server OM迁移到CSOM时的困扰——这部分的官方文档确实不够清晰,找起来挺费劲的。下面是你需要的CSOM等效实现,分设置和检索两部分说明:

设置启用传入邮件并配置邮件别名

在CSOM中,启用列表接收邮件可以直接使用List.EnableReceiveEmail属性,但邮件别名EmailAlias需要通过列表的属性集合来设置,具体代码如下:

using (ClientContext clientContext = new ClientContext("your-site-url"))
{
    // 获取目标列表
    List targetList = clientContext.Web.Lists.GetByTitle("Your List Title");
    
    // 启用列表接收邮件功能
    targetList.EnableReceiveEmail = true;
    // 设置邮件别名
    targetList.SetProperty("EmailAlias", "abc@abc.com");
    
    // 提交更改到SharePoint服务器
    targetList.Update();
    clientContext.ExecuteQuery();
}

检索列表的邮件接收状态与别名

对应Server OM里的CanReceiveEmail和EmailAlias,CSOM中需要这样获取:

  • CanReceiveEmail直接对应List.EnableReceiveEmail布尔属性
  • EmailAlias需要从列表的Properties集合中读取(因为它不是CSOM List类的直接公开属性)

具体代码:

using (ClientContext clientContext = new ClientContext("your-site-url"))
{
    List targetList = clientContext.Web.Lists.GetByTitle("Your List Title");
    
    // 按需加载所需属性(避免加载整个列表对象,提升性能)
    clientContext.Load(targetList, 
        l => l.EnableReceiveEmail, 
        l => l.Properties);
    clientContext.ExecuteQuery();
    
    // 获取列表是否可接收邮件的状态
    bool canReceiveEmail = targetList.EnableReceiveEmail;
    // 获取邮件别名(注意做空值判断,避免空引用异常)
    string emailAlias = targetList.Properties.ContainsKey("EmailAlias") 
        ? targetList.Properties["EmailAlias"].ToString() 
        : string.Empty;
}

额外注意事项

  • 确保操作账号拥有列表管理权限,否则会抛出权限不足的异常
  • 不是所有列表类型都支持传入邮件(比如自定义列表、任务列表支持,文档库默认不支持),操作前需确认列表类型兼容性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:38:37