在某些版本的 SharePoint 中添加列表项时发送电子邮件需要执行许多步骤,其详细信息如下。 但是,如果你使用的是最新版本的 SharePoint,则可以直接从列表添加流。 用于在添加列表项时发送电子邮件的流模板包括快速开始所需的基本步骤。
注意:
-
自 2020 年 8 月 1 日起,新租户的 SharePoint 2010 工作流已停用,并已于 2020 年 11 月 1 日从现有租户中删除。 如果使用的是 SharePoint 2010 工作流,我们建议迁移到 Power Automate 或其他受支持的解决方案。 有关详细信息,请参阅 SharePoint 2010 工作流停用。
-
SharePoint 2013 工作流自 2023 年 4 月 2 日起已弃用,并且将于 2024 年 4 月 2 日起关闭新租户。 它将从现有租户中删除,并且将于 2026 年 4 月 2 日完全停用。 如果使用 SharePoint 2013 工作流,我们建议迁移到 Power Automate 或其他受支持的解决方案。 有关详细信息,请参阅 Microsoft 365 中的 SharePoint 2013 工作流停用。
-
最多可能需要 4 小时才能收到通知。
从工作流发送电子邮件
从工作流发送基本电子邮件
通过使用工作流Designer中的“发送Email”操作,可以将自定义工作流设置为向你或任何其他指定的用户或组发送电子邮件。 电子邮件的可用字段为“收件人”、“抄送”、“主题”和“正文”。 这些字段可以包含静态文本和从工作流查找动态生成的文本。
可以使用“发送Email”操作生成多种类型的电子邮件,包括工作流到达指定阶段或执行指定操作时的通知 (包括工作流的总体启动和停止) 以及有关任务未在其截止日期前完成的任务的提醒。
注意: 必须先在服务器上配置传出电子邮件设置,然后工作流才能发送电子邮件。 如果不确定服务器的当前电子邮件设置,请与服务器管理员检查。 有关传出电子邮件设置的详细信息,请参阅 另请参阅 部分。
在此示例中,将工作流设置为在每次开始在新项目上运行时向你发送电子邮件通知。 使用与你的 SharePoint Server 版本匹配的 SharePoint Designer 版本。 例如,对于 SharePoint Server 2010,请使用 SharePoint Designer 2010。 并且,对于 SharePoint Server 2010 之后的所有版本(包括 SharePoint Server 2016 和 Microsoft 365 中的 SharePoint),请使用 SharePoint Designer 2013。 从Microsoft 下载中心下载有关详细信息,请参阅另请参阅。
打开 SharePoint Designer 2013 并连接到 SharePoint 网站
SharePoint Designer 2013 作为 Office 2013 应用安装。 若要打开 SharePoint Designer 2013 并连接到 SharePoint 网站,请执行以下步骤:
-
若要打开 SharePoint Designer 2013,请在“开始”菜单中选择它。 选择“开始”图标,>Office 2013>SharePoint Designer 2013 Microsoft所有程序>。
-
在 SharePoint Designer 2013 起始页上,选择“打开网站”。
-
输入要连接到的 SharePoint 网站,例如,http://www.contoso.com/sites/a-sharepoint-site。
-
若要打开站点,请选择“打开”。
-
如果出现提示,请输入凭据。 (如果安全性未与登录的计算机集成,系统会提示输入凭据。) 确保使用有权访问 SharePoint 网站的凭据。
创建基于 SharePoint 工作流平台的列表工作流
-
在导航窗格中,选择“工作流”节点。
-
在“工作流”选项卡的“新建”部分中,选择“列出工作流”下拉列表。
-
选择要与新工作流相关联的列表。
-
在“ 创建列表工作流 ”对话框中,输入工作流的名称和说明,并确保将“平台类型”设置为“SharePoint 2013 工作流”。
-
若要创建工作流,请选择“ 确定”。
现在已创建工作流,你可以添加操作、条件、阶段、步骤和循环来构建工作流。 SharePoint Designer 2013 功能区中提供了这些工作流组件。
注意: 如果未看到 SharePoint 2013 工作流作为可用平台类型,则工作流管理器未配置为使用 SharePoint 场。 若要解决此问题,请参阅 将工作流管理器配置为使用 SharePoint Server 2013 场。
有关可用工作流操作列表的详细信息,请参阅另请参阅。
创建用于发送电子邮件的操作
-
选择“操作”,然后选择“发送Email”。
-
在操作中,选择这些用户。
-
在“定义Email消息”对话框中,从现有用户和组中选择用户,或在“To”字段中输入自己的电子邮件地址。
注意:
-
若要将电子邮件发送到外部电子邮件地址, 必须能够从相应的电子邮件服务器检索信息。
-
电子邮件的 “To ”地址可以是特定的静态地址 (例如 NORTHWIND TRADERS\junmin 或 junmin@northwindtraders.com) ,也可以是工作流查找变量信息。 有关使用工作流查找动态处理从工作流发送的电子邮件而不是使用静态地址的详细信息,请参阅动态选择接收消息的用户或组。
-
呈现的电子邮件的发件人地址将始终是服务器管理员的电子邮件地址,除非服务器管理员更改当前 Web 应用或所有 Web 应用的发件人地址。 若要了解详细信息,请阅读为特定 Web 应用配置传出电子邮件。
-
-
在 “主题”字段中,输入电子邮件的主题,或者要在此处定义所需文本的工作流查找,请选择“显示数据绑定”。
注意: 若要正确编译工作流,必须在 “主题”字段中输入一些条目。
-
在 “主题”字段下的大框中,输入或粘贴电子邮件的正文文本。
-
选择 确定。
-
选择 “操作 ”>转到某个阶段。
-
选择“ 工作流结束”。
-
选择“发布”。
有关修改电子邮件内容的更多高级选项,请参阅以下部分。
动态选择要接收邮件的用户或组
如果在电子邮件的“收件人”和“抄送”字段中提供静态地址,则每当需要更改收件人时,都必须在工作流Designer中打开工作流并手动进行更改。 如果地址将频繁发生更改,则最好在“收件人”和“抄送”字段中使用工作流查找。 查找可以引用当前项目中的字段、其他列表或库项目中的字段或工作流变量中的地址。
使用自定义列表存储收件人地址
如果收件人定期更改,但不是经常在每次启动工作流时必须在初始表单上指定他们,则可以创建自定义收件人列表,其中包含引用它的每个工作流的一个列表项,然后创建列,你可以在其中存储每个工作流中的每封电子邮件要发送到的地址。 当任何工作流邮件的收件人发生更改时,你需要做的是更改该工作流的“收件人”列表项中相应字段中的地址。
重要: 存储工作流电子邮件地址的列可以是单行文本、多行文本或人员或组类型列。 如果使用“人员”或“组”列,则工作流将引用电子邮件地址的每个字段只能创建一个条目。 创建列时,请务必在“允许多重选择”下选择“否”。 如果要使用此类型的列来指定多个收件人,可以创建一个 SharePoint 组,其中包含您希望工作流将电子邮件发送到的人员,然后在 字段中指定该组。 创建列时,请务必在“允许选择”下选择“人员和组”。 有关创建列表和添加列的详细信息,请参阅另请参阅。
注意: 创建 SharePoint 组时,请确保每个组至少具有网站的“读取”权限,并在“新建组”页的“组设置”区域中,在“谁可以查看组的成员身份”下,选择“所有人”。
若要为自定义“收件人”列表使用工作流查找:
-
在浏览器中,创建名为“收件人”的包含以下三个列的自定义列表:
-
在“收件人”列表中,创建一个新项目,然后执行以下操作:
-
在 “工作流名称” 字段中,输入“文档审阅”,这是此处使用的示例工作流的名称。
-
在“To”字段中,选择“通讯簿 ”,然后在“选择人员并组”对话框中,选择要向其发送电子邮件的单个个人或组。
-
在 “抄送” 字段中,输入要向其发送地址的收件人的电子邮件地址,用分号分隔多个地址。
-
-
选择“操作”,然后选择“发送Email”。
-
在“操作”中,选择这些用户。
-
在“定义Email消息”对话框中的“To”框末尾,单击“通讯簿”。
-
在“选择用户”对话框的“或”从现有用户和组中进行选择“列表中,选择”用户的工作流查找“,然后选择”添加”。
-
在 “查找人员或组 ”对话框中,选择以下选项:
-
数据源:收件人或自定义列表的名称。
-
源中的字段: “到”,或包含“目标”行中所需地址的字段。
-
返回字段为: 登录名。 这决定了电子邮件中的“To”字段格式。
-
字段:收件人:工作流名称
-
值:输入“文档审阅”或当前工作流的名称。
此查找指出,“从收件人列表中,选择工作流名称等于文档审阅的收件人字段的值。
对话框的上半部分指定列表和列;对话框的下半部分指定行。
-
-
在 “查找人员或组 ”对话框中,选择“确定”。
-
在有关确保唯一查找的电子邮件中,选择“确定”。
-
若要关闭 “选择用户 ”对话框,请再次选择“确定 ”。
-
在“定义Email邮件”对话框中的“抄送”字段末尾,选择“通讯簿”。
-
在“选择用户”对话框的“或”从现有用户和组中进行选择“列表中,选择”用户的工作流查找“,然后选择”添加”。
-
在 “定义工作流查找 ”对话框中,选择以下选项:
-
数据源:收件人或自定义列表的名称。
-
源中的 字段:抄送,或在抄送行中保存所需地址的字段。
-
返回字段为: 登录名。 这决定了电子邮件中的“To”字段格式。
-
字段:收件人:工作流名称
-
值:输入“文档审阅”或当前工作流的名称。
此查找指出,“从收件人列表中,选择”抄送“字段的值,其中”工作流名称“等于”文档审阅”。
-
-
选择“确定”,然后在警告消息中再次选择“确定 ”。
-
若要关闭 “选择用户 ”对话框,请选择“确定”。
现在,当工作流发送此电子邮件时,它会将其发送到自定义收件人列表中的“文档审阅”项的“收件人”和“抄送”字段中列出的地址。 若要更改收件人,只需在列表项中进行所需的更改即可。
单个工作流可能会发送多个电子邮件,并且这些电子邮件可能不会全部发送给同一收件人。 若要存储此工作流发送的其他电子邮件的其他地址,可以向列表中添加列以存储其他地址。 在这种情况下,你可能希望将列命名为“第一个邮件收件人”、“第二个邮件收件人”等等。
或者,可以设计列表,以便为工作流发送的每封电子邮件创建一个项目,而不是为每个工作流创建一个项目。 在这种情况下,请确保用于标识每封电子邮件的名称是唯一的,以便检索地址的查找返回所需的唯一值。
使用工作流启动表单指定收件人
如果你希望每次手动启动工作流时都指定收件人,则可以自定义工作流启动表单以从启动工作流的人员收集地址。 然后,工作流可以直接使用输入的地址,或者将它们复制到当前项目的字段中 — 在工作流完成其当前实例后,它们仍可供参考。 如果工作流设置为自动启动,则无论何时发生自动启动,都可以在启动表单中指定默认地址。
包含有关当前项目的信息
到目前为止,示例电子邮件中的正文文本是静态的:每次工作流创建电子邮件实例时,文本将完全相同。
但是,包含与当前运行工作流的项目相关的文本可能很有用。 例如,在电子邮件正文中包含需要审阅的文档的标题可能很有用。 若要包含此类动态信息,你可以使用工作流查找。 查找功能将从不同的数据源(如列表、库和工作流数据)检索数据。
若要将文档的标题添加到电子邮件文本,请执行以下操作:
-
输入或粘贴要在其中显示查找信息的静态文本。
-
将插入点放在查找所在的位置。
提示: 插入查找后,无法将其拖动到新位置。 (但是,可以通过拖动其周围的文本来“重新定位”查找。) 同样,无法剪切、复制或粘贴查找或包含查找的任何文本。
-
选择“添加或更改查找”。
-
在“ 查找字符串 ”对话框的“ 数据源”字段中,选择“ 当前项”,在“ 源字段”字段中,选择“名称”。
-
选择“确定”。
-
插入的查找显示在电子邮件正文中。
-
若要发布工作流,请选择“发布”。
运行工作流并生成电子邮件时,查找将替换为文档的标题。
包含文档标题很有用,但包含一个允许你直接访问文档的超链接可能更有用。 为此,你需要在超链接中包含查找。
包含静态超链接
若要在工作流电子邮件正文中包含静态超链接(始终链接到同一地址或位置的超链接),请在“定义Email邮件”对话框中的格式设置工具面板右上角,选择“编辑超链接”按钮。
-
输入或粘贴要在其中显示链接的静态文本。
-
选择文本,然后选择“编辑超链接”。
-
在 “编辑超链接 ”对话框中,输入网站的地址。
-
选择“确定”。
插入的超链接显示在电子邮件的正文中。
注意: 基于文本的电子邮件程序不会呈现超链接。
若要了解如何使用工作流查找创建动态超链接,该超链接指向工作流当前正在运行的项目的不同地址,请参阅包含指向当前项目的超链接。
包含指向当前项目的超链接
在上 一节“包含静态超链接”中,示例超链接中的地址不包含任何变量信息:每次工作流发送电子邮件时,超链接指向同一页。
但是,通过使用工作流查找,你可以创建一个动态链接,该链接使用与当前项目相关的信息来决定指向哪个 URL。
如果当前项是文档库中的文档
在工作流启动通知示例中,你可能希望提供指向新文档的链接:
-
输入或粘贴要在其中显示链接的静态文本。
-
选择文本,然后选择“编辑超链接”。
-
在 “编辑超链接 ”对话框中,选择函数 (fx) 。
提示: 插入查找后,无法将其拖动到新位置。 (但是,可以通过拖动其周围的文本来“重新定位”查找。) 同样,无法剪切、复制或粘贴查找或包含查找的任何文本。
-
在“查找字符串”对话框中的“数据源”字段中,选择“当前项”。
-
在 “源中的字段”字段中,选择“ 编码的绝对 URL”,然后选择“确定”。
当电子邮件的收件人选择链接时,文档将打开以供查看或编辑。
如果当前项目是列表项
创建指向列表项的链接(例如公告或日历事件)时,可以选择打开列表项的显示窗体 (DispForm.aspx) 或编辑窗体 (EditForm.aspx) 链接。
若要创建用于打开列表项的链接:
-
在浏览器中,导航到要创建此工作流的列表。
-
打开库中任何现有文档的列表项,如果希望链接打开显示窗体,请使用 “查看项 ”;如果希望链接打开编辑窗体,请使用 “编辑项 ”。
-
将地址栏中的地址从 http: 或 https: 开头复制到第一个等号 (=) 。
-
?ID= 文本是一种查询字符串参数,用于指示页面显示当前列表或库中具有列表 ID(后跟等号 (=))的项目的表单 — 在此示例中,它是由工作流查找标识的当前项目的列表 ID。
注意: 如果当前项目是由三个工作流任务操作之一创建的任务,并且如果希望链接打开自定义任务窗体 (而不是任务列表) 的默认显示或编辑窗体,请参阅如果当前项目是自定义任务窗体。 对于不是由工作流任务操作创建的任务,并且对于由其中一个工作流任务操作创建的任务的显示表单,你需要做的就是完成当前过程。
-
在“定义Email消息”对话框中,输入或粘贴要在其中显示链接的静态文本,例如 - 若要查看列表项,请单击此处。
-
选择文本,然后选择“编辑超链接”。
-
在 “编辑超链接”框中,对于 地址 字段,选择“ 字符串生成器”。
-
在 “字符串生成器 ”对话框中,粘贴地址。
-
将插入点直接放在等号 (=) 之后,然后选择“添加或更改查找”。
-
在“查找字符串”对话框的“源”字段中,选择“当前项”,然后在“源字段”字段中选择“ID”。
-
选择“确定”。
字符串生成器中的最后一个字符串应以 http:// 或 https:// 开头,以 [%Current Item:ID%].结尾
重要: 虽然当前项目 ID 查找在构建指向当前列表项的链接时很有用,但以下查找可能会显示呈现的路径中的错误,我们不建议将其包含在电子邮件链接中:路径、服务器相对 URL、源 URL 和 URL 路径。
-
选择 “确定” 两次。
链接将以蓝色文本显示,电子邮件中带有下划线。
如果你计划多次使用该链接,请继续阅读下一部分。
将列表项地址存储为工作流变量
你可以在工作流变量中存储显示表单的 URL 或编辑列表项的表单,以便能够在同一工作流中的多个位置使用它。
-
在“工作流Designer”窗口中,选择“操作”,然后选择“从字符串索引中提取子字符串”。
-
在阶段中,选择“字符串”,然后选择“省略号”按钮 。。
-
在 “字符串生成器 ”对话框中,粘贴 URL 的静态文本部分 (而不是) 当前项 ID 的查找。
-
将插入点置于等号 (=) 之后,然后选择“添加或更改查找”。
-
在“查找字符串”对话框中的“数据源”字段中,选择“当前项”,在“源字段”字段中,选择“ID”。
-
选择“确定”。
查找将添加到对话框中的文本。
-
若要关闭 “字符串生成器 ”对话框,请选择“确定”。
-
在“从 0 开始”中选择 “0” ,并将其替换为 1。
注意: 当 Starting at 的值大于 1 时,最后一个字符串将删除字符。
-
在“输出到变量:子字符串”中选择“变量:子字符串”或“变量:substring1”。
-
在列表中,选择“创建新变量 ”,然后在“ 编辑变量 ”对话框中输入新变量的名称。
-
确保 “类型” 设置为 “字符串”,然后选择“确定”。
-
在刚刚创建的操作下方选择“将 发送电子邮件 ”操作添加到“操作”,然后在操作中选择这些用户 。
-
若要在“定义Email消息”对话框中使用新变量,请输入或粘贴要在其中显示链接的文本。电子邮件正文中。 选择文本,然后从格式菜单中选择“编辑超链接”。 选择 [fx] 按钮,或选择省略号按钮 ...,然后选择添加或更改查找。
-
在“查找字符串”对话框的“数据源”框中,选择“工作流变量和参数”。
-
在“源中的字段”列表中,选择“变量:变量的名称”,然后选择“确定”,然后在下一个框中选择“确定”。
你现在可以在当前工作流中的任何位置插入此变量。
包含图像
可以通过创建变量并使用 HTML 图像标记 <img/> 将图形包含在电子邮件中,链接到以 JPEG (.jpg) 文件存储并上传到网站中的图片库的图像。
-
在“工作流Designer”窗口中,选择“操作”,然后选择“设置工作流变量”。
-
选择“工作流变量”, 然后选择“ 创建新变量”。
-
在 “编辑变量 ”对话框中,输入新变量 的名称 ,并确保 “类型” 设置为 “字符串”,然后选择“确定”。
-
选择值 ,然后选择省略号按钮 。。在 “字符串生成器”窗口中,以 HTML 标记格式输入或粘贴 JPEG 图像文件的 URL - <img src ="URL"/>
-
选择“确定”。
-
插入的操作显示如下。
-
选择刚刚创建的操作下方,将 “发送电子邮件” 操作添加到该操作,然后在操作中选择“these 用户 ”。
-
在“定义Email消息”对话框中,选择“添加或更改查找”。
-
在“ 查找字符串 ”对话框的“ 数据源 ”列表中,选择“ 工作流变量和参数”。
-
在 “源中的字段 ”列表中,选择“ 变量:变量的名称”,然后选择“ 确定”。
-
若要关闭“定义Email消息”窗口并发布工作流,请再次选择“确定”。
发送电子邮件后,将显示 JPEG 文件中的图像,而不是链接标记。
标识不受支持的选项
当前版本的“发送Email”操作不支持以下选项:
-
在“发件人”行中指定地址。 (工作流发送的电子邮件始终在 “发件人 ”行上显示服务器管理员指定的电子邮件地址。 只有服务器管理员才能更改此设置,并且只能针对当前 Web 应用中的所有通知更改它,而不能按工作流更改。)
-
使用嵌入的级联样式表 (CSS) 来格式化邮件内容。 可以使用 style 属性设置文本格式,但我们不支持 <style> 标记和 CSS 类。
-
在“收件人”或“抄送”框中使用工作流查找,该框引用包含多个值的人员或组类型的列。
-
为电子邮件指定密件抄送收件人。
-
在邮件中包含作为附件的其他文件。
-
在邮件中嵌入图像或图形文件。 相反,包含图像。
另请参阅
SharePoint 2013 分步说明:设置传出电子邮件设置
将工作流管理器配置为与 SharePoint Server 2013 场一起使用
在 SharePoint Online、SharePoint 2016 和 SharePoint 2013 中创建警报或订阅 RSS 源
在 SharePoint 2010 中创建警报或订阅 RSS 源
基本故障排除提示
以下问题列表有助于确定创建工作流时遇到的问题的原因:
-
是否能够在同一列表中创建任何其他类型的工作流? 例如,尝试创建 审批工作流。
-
是否能够在以下位置创建相同的工作流:
-
在同一网站上的不同列表上?
-
在不同网站的同一网站集下?
-
在不同网站集的同一 Web 应用程序下?
-
在不同的 Web 应用程序上?
-
使用其他帐户登录?
-
使用另一台计算机?
-
高级故障排除提示
如果基本故障排除提示都无法确定工作流问题的原因,请使用以下步骤:
-
确保你在网站和工作流级别具有所需的权限。 转到 “网站设置”>“网站权限”>检查此列表的权限/列表设置>“权限”, 并验证 “检查权限” 结果是否与以下内容匹配:
-
设计工作流所需的最低权限(保存并发布):
-
在 SharePoint 网站上:设计
-
在 SharePoint 列表上:编辑
-
-
启动工作流所需的最低权限:
-
在 SharePoint 网站上:仅查看/读取
-
在 SharePoint 列表上:参与
-
-
-
确保将传出电子邮件设置配置为正确的 Exchange 服务器。
-
以管理员身份打开“命令提示符”
-
运行 nslookup <Exchange server address>。 例如:nslookup exch.contoso.com
-
你应该会在输出中看到已解析的 Exchange 服务器的 IP 地址。 如果没有,请与你的 Exchange 管理员联系,并让管理员提供正确的 Exchange 完全限定域名 (FDQN)。
-
-
使用以下步骤使用 SPUtility 类的 SendEmail 函数和 SharePoint 命令行管理程序向同一人员发送电子邮件。
-
以管理员身份打开 SharePoint 命令行管理程序。 (右键单击 “SharePoint 管理 Shell>以管理员身份运行)
-
运行以下脚本。 如果脚本响应为 True,并且用户收到来自 SharePoint 的电子邮件,则会在 SharePoint 中正确配置 SMTP。
$Site = "Your Site Name" $Email = "User to whom you are sending an email through the workflow" $Subject = "Subject Line with the email" $Body = "Test Email Body" $web = Get-SPWeb $Site [Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($Web ,0,0,$Email,$Subject,$Body) # Below is the same script with sample data $Site = "http://sp/" $Email = "User1@contoso.com" $Subject = "Test Email from SharePoint" $Body = "This is a Test Email" $web = Get-SPWeb $Site [Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($Web ,0,0,$Email,$Subject,$Body)
-
-
使用 SMTP 功能,从 SharePoint 服务器向同一用户发送电子邮件。 按照使用 Telnet 测试 SMTP 通信中的步骤执行操作。
注意: 默认情况下,SharePoint 不会为传出邮件创建日志条目。 SharePoint 永远不会直接发送电子邮件。 电子邮件通过 管理中心 中配置的 SMTP (Exchange ) 服务器进行中继。 若要对此类工作流进行故障排除,请按照前面的步骤操作。