为 SharePoint 2013 列表中的所有项目发送电子邮件

Send email for total items in a SharePoint 2013 list

如何在 SP2013 中创建自动发送的电子邮件以提供 SP2013 列表中的项目总数?

您可以通过在您的服务器(或任何其他服务器,如果您使用客户端 OM)上使用任务计划程序(在特定时间间隔)触发发送电子邮件。其他选项是使用事件接收器:在 itemadded 事件中,计算项目总数并通过 c# 发送电子邮件。 你的问题比较短,再补充一些细节,会更容易给你一个完整的答案

不确定是否可以使用工作流,因为在我看来,无法检查列表中的项目总数。工作流在项目添加时触发,imo 你只能拥有当前项目的属性。 除非您使用新创建的列表并使用 itemID。这总是会随着项目总数增加 ID,但是每当您删除项目时,您的计数都是错误的,所以不要使用它。

我会创建一个农场解决方案来处理您列表中的 onitemadded 事件。然后,您可以轻松地从事件接收器附带的 SPItemEventProperties 中获取列表对象。 然后做这样的事情(抱歉,我暂时没有我的开发环境):

SPQuery query = SPQuery.CreateAllItemsQuery();
List mylist = properties.List;

SPListItemCollection items = mylist.getItems(query);

int totalCount = items.Count;

if(totalCount < 16){
//SEND EMAIL LOGIC
}

发送电子邮件可以通过 C# 完成。

好处: 如果您想重用此逻辑,您始终可以为 SharePoint 工作流创建自定义 action/condition。

很酷的代码,但有一种简单、更完整的开箱即用方法可以完成此任务。

获取总项目数:

在列表 A 中创建一个名为 ListA_ID 的单行文本字段。创建一个订单项并将此字段设置为您选择的值。

向列表 B 添加一个名为 ListA_ID_lookup 的查找列(在此列表中创建的所有项目都需要设置为在列表 A 中创建的相同值)。

在 ListA 中创建一个名为 "Total Number of Values in List B"

的新查找列

设置查找以从中获取信息:列表 B 在此列中:ListA_ID_lookup(计数相关)

列表 A 上的计数相关字段将报告与查找列匹配的项目总数。

然后您可以以某种方式创建循环工作流,以您选择的时间间隔发送更新电子邮件。当更新 B 中的列表项时,我将创建一个工作流来更新列表 A 中的字段,这将启动一个工作流以从列表 A 发送电子邮件。如果 "Total Number of Values in List B" 小于 20,则电子邮件操作等

有几种方法可以完成此电子邮件部分。