发送用户邮件
访问路径:数据发布 -> 发送用户邮件
功能简述
系统支持基于单或多数据源创建用户自定义邮件的功能。用户邮件区分为两种:
- 内容汇总性邮件模式
该模式下,系统基于单或多数据源内容,创建一封邮件进行发送。 - 批量遍历性邮件模式
该模式下,系统基于任务脚本
中的主数据集的批量记录,创建批量的邮件,邮件内容以单一主数据记录中的信息为基础创建,并批量发送。
任务脚本
虽然系统支持2种模式的邮件发送,但每种模式均支持单数据或多数据源模式来对邮件内容进行数据供给。
单数据集合
该模式下,用户只需要在任务脚本
中提供一条SQL查询语句即可。系统将根据内容汇总性或批量记录性邮件设置,该数据集将被用于创建特定的汇总邮件,或遍历该记录集发送多份邮件。格式如下:
select * from pay.paylist order by pay_datetime
多数据集合
该模式下,用户需要按特定脚本格式来准备任务脚本
SQL查询语句,格式如下:
<sql id="queryUser" category="loop" script="select * from dbo.paylist"/>
<sql id="queryByDept" script="select * from dbo.paylist"/>
<sql id="queryByStaff" script="select * from dbo.paylist"/>
id
: 用于标识当前脚本ID,邮件中可以基于该id进行识别并调用对应的SQL脚本数据。category
: 用于识别脚本的类型,如果当前邮件是批量记录性邮件
模式,则必须要设置一个脚本的类别为:category="loop"
的脚本,用于支持创建遍历邮件的主数据。如果是内容汇总性邮件,则不需要额外指定该属性。script
: 用于定义数据查询脚本。
邮件配置
在电子邮件配置页面中,可以提供邮件主题及收件人等信息:
- 邮件主题: 支持自定义变量,如
<var:currentDay/>
- 收件人:发送、抄送或密送等项目中支持自定义变量,或数据变量,如:
<var:currentUser/>
,<db:userEmail/>
- 使用专用邮件服务: 如果不勾选该选项,则邮件将使用平台配置的邮件服务进行发送。如果勾选了,则使用当前任务包中配置的邮件服务进行发送。
- 内容汇总性邮件: 选中该选项,将最终发送一封邮件。否则,将基于任务脚本中的数据进行轮询,并产生批量邮件。
- 邮件附件: 系统支持集成报表文件,用户自定义文件。
- 正文内嵌图片:用户可以上传本地图片,该图片将被集成到邮件HTML正文中。邮件正文中会以图片名称为占位符。例如:
<img src=Hamster.PNG/>
邮件内容
邮件内容支持HTML语法的格式设置,但因为各类邮件服务的限制,对HTML脚本的支持是受限的。
数据表格
<table>~</table>
用于标识特定数据表格对应,各个Table是独立处理的,表格支持基本的HTML样式。- id : 关联任务脚本中的特定数据集合id
<thead>~</thead>
用于标识特定表格内部的表头<tbody>~</tbody>
含有一个数据行,并自动遍历对应的数据集,并创建多行记录。<tr>~</tr>
标识一个数据行<td>~</td>
用于标识一个特定的字段,<tfoot>~</tfoot>
用于定义数据汇总行信息。
注:
- 支持HTML的样式属性style
- 支持特定数据字段数据格式
- 支持数据列聚合计算:count(),sum(),max(),min()
例如:
- 该类表格在一封邮件中可以包含多个。
- 通过在
table
中定义属性id="dpt"
建立了同任务脚本中预定义的脚本中id的关联关系,即当前table
将使用对应id
中的数据集数据显示。 - 通过
thead
中定义了表格的标题栏,并通过style
属性来定义表格样式 - 通过
tbody
中定义了一个数据行<tr>...</tr>
,系统会自动按该定义创建数据集合中的多行显示记录。 - 通过
tfoot
中定义表格脚注汇总信息,该模块可以根据业务需要选择是否配置,是可选的 - 案例中使用多个系统预订变量,来实现了自动行号,汇总计算等功能,详细定义参考自定义变量章节,如:
<sys:rowindex/>
: 用于使用自动行号<db:iCount/>
:数据行中使用,用于显示对应行记录中特定的部门人数字段值,<fun:sum(iCount)|{0:C2}/>
: 表脚注中,用于显示当前数据集的聚合计算值,案例表示累加各个部门人数总和。类似的还有:<fun:count()/>
,<fun:max()/>
,<fun:min()/>
等
<table id="dpt" border="0" cellpadding="2" cellspacing="2" width="800">
<thead>
<tr>
<td style="background-color: #007858;text-align: center; color: #fff;width:50px;">序号</td>
<td style="background-color: #007858;text-align: center; color: #fff;">部门</td>
<td style="background-color: #007858;text-align: center; color: #fff;">人数</td>
</tr>
</thead>
<tbody>
<tr>
<td style="background-color:#D9D9D9;padding-left:5px;text-align:center;"><sys:rowindex/></td>
<td style="background-color:#D9D9D9;padding-left:5px;"><db:LogicDept/></td>
<td style="background-color:#D9D9D9;padding-right:5px;text-align:right;"><db:iCount/></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan=2 style="background-color: #72787A;color: #fff;padding-left:5px;">部门数</td>
<td style="background-color: #72787A;color: #fff;padding-right:5px;text-align:right;"><fun:count(iCount)/></td>
</tr>
<tr>
<td colspan=2 style="background-color: #72787A;color: #fff;padding-left:5px;">总人数</td>
<td style="background-color: #72787A;color: #fff;padding-right:5px;text-align:right;"><fun:sum(iCount)|{0:C2}/></td>
</tr>
</tfoot>
</table>
内嵌图片
因为HTML格式的邮件不支持position,float等HTML定位属性,所以只能通过基本的table模式定位。下述格式中<img src=Hamster.PNG/>
的Hamster.PNG
图片,是通过在配置页面中上传的内嵌图片进行关联。
<table style="width:800px;" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width:124px;"><img src=Hamster.PNG/></td>
<td style="padding-left:5px;"><h2>每日餐厅就餐刷卡日报</h2></td>
</tr>
</table>
内嵌图表
系统支持将报表模块中生成的图表图片整合到邮件正文中,下例中使用了内嵌变量对象:<obj:SheetObj_SheetID/>
,该变量中后半段的SheetID,为报表模块中对应图表的GUID值。
注: 如果需要集成图表图片,需要将对应的图表对应的页签对象作为附件添加到邮件任务中。
<hr style="color:#007858;height:5px;">
<img src=<obj:SheetObj_64135EC1F99D41A3B0AD3F05C4FA1FE0/> width="800"/>
<hr>
对应的附件定义:
对应的报表中图表对象定义: