企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
这篇文档主要介绍BS 的Java 版本在发邮件时如何携带附件 > 目前仅支持携带两种附件 > 1. UReport 设计的报表,自动导出PDF 携带在附件当中。[UReport报表教程](https://www.kancloud.cn/fxlwj/bsdocument/1858343) > 2. 携带文档中心上传的附件 > > 注意事项: > 1. 目前只支持使用特定操作发邮件的形式携带附件,不支持插入表数据的那种方法 这篇文档主要分为以下几个部分: * 准备工作(执行升级脚本,建表) * 详细配置步骤 * 测试 ***** ### 1、准备工作 下载升级脚本并执行:[点击下载升级脚本](https://bs-resource.oss-cn-zhangjiakou.aliyuncs.com/bs%E6%96%87%E6%A1%A3/%E9%82%AE%E4%BB%B6%E5%8F%91%E9%80%81%E6%90%BA%E5%B8%A6%E9%99%84%E4%BB%B6%E8%84%9A%E6%9C%AC.zip) ### 2、详细配置步骤 执行完升级脚本之后 makeTable 工具中会有一个名为:sendMailFiles 的表,该表的结构如下图:![](https://img.kancloud.cn/c1/3f/c13fd60e7ff5980d079a910f370e3a55_1754x210.png) **把需要携带的附件插入到这张表中,发送邮件时就会自动携带上去。** 下面解释一下每个字段的所代表的意义 > opeid:业务的编号,需要和BS的表单号保持一致 > autoid:序号,没有实际含义,仅作为联合主键限制数据的唯一性 > fileNo:这个字段当中需要插入设置UReport报表的单据号或者是文档的did > fileName:这个字段代表发送过去以后附件的名称。注意:不需要文件的后缀名 > fileType:附件的类型,0:文档中心的附件、1:UReport 打印报表附件 > status:启用状态,0:不启用、1:启用 > keyname:当需要发送UReport报表时,必须指定这个字段的值,和UReport报表设计时的参数名保持一致,也就是你的关键字名称。如:billno、orderno 等 > checkUpSql:从V1.5.4 开始加入检查sql,执行sql后如果有返回值就不携带附件,没有就携带。可以使用的固定参数有:'[keyvalue]'、'[userno]'、'[username]' 2.1. 在**sendMailFiles**表中插入要携带的附件信息,前两条是UReport 的报表,最后一条是文档中心上传的图片 **注意一:携带文档中心的附件时,fileNo插入的是did字段编号,fileType是 0** **注意二:如果需要根据条件携带指定附件的话,就将判断的sql 插入到 checkUpSql 中,可以使用的固定参数有:'[keyvalue]'、'[userno]'、'[username]'** ``` insert into sendMailFiles(opeid, autoid, status, fileno, filename, filetype, keyname) values('1197072', 1, 1, 'AFR202006150003', '客户拜访计划报表', 1, 'billno') insert into sendMailFiles(opeid, autoid, status, fileno, filename, filetype, keyname) values('1197072', 2, 1, 'AFR202006160001', '客户拜访计划批量打印报表', 1, 'billno') insert into sendMailFiles(opeid, autoid, status, fileno, filename, filetype, keyname) values('1197072', 3, 1, 'D20200700006538', 'test', 0, 'billno') ``` **注意:** ![](https://img.kancloud.cn/26/0e/260e8a716dc9117520e10cf58526c683_1691x904.png) ![](https://img.kancloud.cn/48/66/486606413d76600a5db759bd0a65f635_1815x954.png) 2.2. 在BS表单中配置按钮执行编号为:**1022** 的特定操作,[点击查看邮件发送的详细配置文档](https://www.kancloud.cn/fxlwj/bsdocument/1804109) ![](https://img.kancloud.cn/5f/5a/5f5a28838186105b4bb1cc93ebd92361_1895x926.png) ### 3、上面的配置就结束了,下面查看测试效果 ![](https://img.kancloud.cn/af/32/af327f8433a9063ff82a310caf160b04_1655x550.png) ![](https://img.kancloud.cn/98/0a/980a0e2c14d191939dc67986ef772fc4_1826x753.png) <br/> ### 4、补充内容,要求BS的版本是1.5.5及以上 发送邮件携带附件的方式有可能会存在漏发的情况,可以将漏发的邮件插入到**send_mail_queue** 这个队列表当中,每次发送邮件的时候会将这个表里的待发邮件一并发送出去。 <br/> 使用方法:首先[下载队列表建表脚本](https://bs-resource.oss-cn-zhangjiakou.aliyuncs.com/bs%E6%96%87%E6%A1%A3/send_mail_queue%28%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E9%98%9F%E5%88%97%E8%A1%A8%29.sql) 1、插入测试数据 ``` insert into send_mail_queue(execute_sql, opeid, keyvalue, userno, username, executed) values('SELECT ''1164960293@qq.com'' as EmailStr, ''测试邮件'' as EmailTitle, ''这封邮件是测试系统的!'' as EmailContent, ''发件人设置'' as sendUser' , '1197072', 'AFB1909040001', 'A001', '管理员', 0) ``` > 参数说明: > execute_sql:插入ERP发送邮件特定操作中配置的语句,注意:语句当中**不能**使用固定参数,比如:'[keyvlaue]','[userno]' 等。插入的时候注意单引号转义,插入完成以后最后select 出来自己看看能不能正常执行 > opeid:业务ID > keyvalue:主键的值 > userno:用户账号 > username:用户名称 > executed:执行状态,0:已执行,1:未执行,插入时固定插入0 即可 2、插入完成后点击发送邮件,查看队列表中回写的数据 ![](https://img.kancloud.cn/c7/4c/c74c2025e36beec41c1a326cf1530bb7_1517x259.png)