发送邮件时处理携带附件功能原创
金蝶云社区-m喵喵ion
m喵喵ion
3人赞赏了该文章 1,279次浏览 未经作者许可,禁止转载编辑于2020年12月25日 10:34:19

1、新增第三方应用:

image.png

2、获取access_token(没有用access_token的情况下,发送的邮件是苍穹登陆界面的html文件)

参考路径:https://club.kdcloud.com/article/182582 文章标题(苍穹API服务)

3、根据单据id拿到附件表中的数据

//单据id
Object pkId = this.getView().getFormShowParameter().getCustomParam("MUTEX_OBJ_ID");
//根据单据id获取附件控件中附件数据
QFilter qFilter = new QFilter("FINTERID", "=", pkId);
DynamicObjectCollection customer = QueryServiceHelper.query("bos_attachment", "*", new QFilter[]{qFilter});

4、拼接url,item.get("url")中的url为附件表中的ffileid

http://localhost:8080/ierp/attachment/download.do?access_token=" + accessToken + "&path=" + item.get("url")

注意拼接的url中可能有中文,需要处理转码:

public static String chineseToUrls(String s) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if (c >= 0 && c <= 255) {
            sb.append(c);
        } else {
            byte[] b;
            try {
                //指定需要的编码类型
                b = String.valueOf(c).getBytes("utf-8");
            } catch (Exception ex) {
                b = new byte[0];
            }
            for (int j = 0; j < b.length; j++) {
                int k = b[j];
                if (k < 0) {
                    k += 256;
                }
                sb.append("%" + Integer.toHexString(k).toUpperCase());
            }
        }
    }
    return sb.toString();
}

5、调用邮件发送功能

赞 3