这篇文档主要介绍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)
- 版本管理
- BS版本管理
- BS数据库版本号升级
- 升级功能说明
- 平台升级1
- 平台升级2
- 第一章.平台规则
- Java版本配置注意事项
- 浏览界面自定义排序规则
- 弹出框选择数据自定义排序
- BS固定参数说明
- 常用界面地址格式
- 第二章.环境搭建
- JDK环境搭建
- 免安装版JDK的配置方法
- Java版本BS搭建
- Linux系统搭建BS程序
- Linux安装JDK
- 第三章.业务功能
- 基础业务
- 快速建模
- 左侧菜单栏目
- BS表单详解(弹出选择、多页签)
- 主细表、三层表配置
- 弹出框配置
- 映射下拉配置
- 数据检查条件配置
- 流程图配置方法1
- Java版本BS嵌入APP页面
- BS文档中心配置
- 第二版流程图配置方法
- 第一版流程图配置方法
- 第三版流程图配置方法
- 特殊业务
- BS树页面配置
- BS用户组权限配置
- 业务查询条件
- 查询条件配置
- BS 查询条件 "单选框" 和 "复选框" 配置
- 常用高级功能
- 自动补全配置
- BS字段输入值检查
- 字段汇总配置
- 文件上传配置
- Java版本发送邮件配置
- 设置网格内容对齐方式
- 查询页面状态使用图标表示配置
- Java版本发送邮件并携带附件
- BS嵌入BI图表
- 计算字段
- 自动计算配置
- 修改网格颜色
- 值改变时修改刷新网格汇总
- 按钮功能
- 按钮功能设置
- 按钮背景颜色设置
- 自定义查询界面不检查是否勾选
- Excel导入数据配置
- sql导入表数据配置
- Excel导出子表数据配置
- 弹窗自定义业务配置
- 自动赋值主表数据
- 获取浏览状态下细表选中字段
- 获取自定义查询界面勾选数据
- 带出三层表明细
- 批量审核功能配置
- 打印配置
- Java版本中使用CS打印
- CS打印使用BS文档中心图片
- IReport打印配置
- IReport打印设置主细表关联显示
- IReport打印记录打印次数
- IReport打印不能打印黑体、宋体等自定义字体解决方案
- Ureport报表打印
- 第四章.特殊功能说明
- API数据交互规范
- Kettle同步工具使用指南
- 通过Token登录BS
- .Net版本BS免登陆跳转并打开业务
- BS帮助文档使用说明
- BS接口程序搭建
- 存储过程手动分页配置
- BS 负载均衡部署
- quickBi嵌入BS系统
- BS部署SSL证书(https访问)
- BS演示搭建同一端口转发到不同机器
- BS嵌入APP界面动态渲染按钮并记录点击日志
- 第五章.常见问题
- BS流程图或业务打开报错
- 常见问题及解决方案
- .Net版本BS登录页报错
- BS表单引用app表单常见问题
- 修改BS的网页Logo
- BS上传文件后无法下载
- Java程序CPU占用100%后排查定位
- Linux 安装Java 开发调试工具包
- Linux开机自启动sh 脚本