页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题说明

如何在计划任务实现通过邮件定期发送文本信息给相关人员,不需要任何附件,只是一个文本链接。

        如:王先生,请及时填报《XXXXX报告汇总表》,地址:http://localhost:18050/smartbi/vision/index.jsp

解决方案

可以先新建一个发送邮件的任务,查看运行脚本获取相关代码进行修改,具体代码可以参考以下:

importPackage(Packages.smartbi.scheduletask.task);
importPackage(Packages.smartbi.sdk.service.systemconfig);
importPackage(Packages.java.lang);
importPackage(Packages.java.util);
importPackage(Packages.java.text);
importPackage(Packages.org.apache.commons.lang);
importPackage(Packages.org.apache.commons.mail);
importPackage(Packages.smartbi.scheduletask.component);
var report = null;
    //定义email对象,初始化参数
    var multiPartEmail = new SmartbiMultiPartEmail();
    var systemConfigService = new SystemConfigService(connector);
    var configList = systemConfigService.getSystemConfigs();
  
    var mailServer = null;
    var fromAddress = null;
    var userName = null;
    var password = null;
    var emailSSLEnabled = null;
    var emailTLSEnabled = null;
    var port = "";
    for (var i = 0; i < configList.size(); i++) {
        var config = configList.get(i);
            if (config!=null) {
                if (config.getKey().equals("EMAIL_SMTP_SERVER")) {
                     mailServer = config.getValue();
                } else if (config.getKey().equals("EMAIL_USER_NAME")) {
                     userName = config.getValue();
                } else if (config.getKey().equals("EMAIL_USER_ADDRESS")) {
                     fromAddress = config.getValue();
                } else if (config.getKey().equals("EMAIL_USER_PASSWORD")) {
                     password= config.getValue();
                } else if (config.getKey().equals("EMAIL_SSL_ENABLED")) {
                    if (config.getValue().equals("true")) {
                        emailSSLEnabled = true;
                    }
                } else if (config.getKey().equals("EMAIL_TLS_ENABLED")) {
                    if (config.getValue().equals("true")) {
                        emailTLSEnabled = true;
                    }
                }else if (config.getKey().equals("EMAIL_SMTP_PORT")) {    //端口
                    port = config.getValue().trim();
                }
            }
        }
    multiPartEmail.setHostName(mailServer);
    multiPartEmail.setAuthentication(userName, password);
    multiPartEmail.setFrom(fromAddress);
    if(emailSSLEnabled){
        multiPartEmail.setSSL(true);
        if(port != ""){
            multiPartEmail.setSslSmtpPort(port);
        }
    }
    if(emailTLSEnabled){
        multiPartEmail.setTLS(true);
    }
    if(port != "" && !emailSSLEnabled){
        multiPartEmail.setSmtpPort(port);
    }
    multiPartEmail.addTo("wangzijie@smartbi.com.cn");//接收邮箱地址
    multiPartEmail.setCharset("GBK");//邮件内容字符集
    multiPartEmail.setSubject("请及时填报《XXX营业部销售汇总表》");//邮件标题
 
    var html ="<a href='http://localhost:18080/smartbi/vision/xxx.jsp'>请及时填报《XXX营业部销售汇总表》,地址:http://localhost:18080/smartbi/vision/xxx.jsp</a>";

     //发送邮件
    multiPartEmail.setHtmlMsg(html);
    multiPartEmail.send();




Viewtracker License Missing

There is a problem with the license of the Viewtracker addon. Please check if you have a valid license.

授权码细节

评论

  1. 赵尉余 发表:

    V9版本可使用以下代码:

    importPackage(Packages.smartbi.scheduletask.task);
    importPackage(Packages.smartbi.sdk.service.systemconfig);
    importPackage(Packages.java.lang);
    importPackage(Packages.java.util);
    importPackage(Packages.java.text);
    importPackage(Packages.org.apache.commons.lang);
    importPackage(Packages.org.apache.commons.mail);
    importPackage(Packages.smartbi.scheduletask.component);
    importPackage(Packages.smartbi.util);
    var report = null;
    //定义email对象,初始化参数
    var multiPartEmail = new SmartbiMultiPartEmail();
    var systemConfigService = new SystemConfigService(connector);
    var configList = systemConfigService.getSystemConfigs();

    var mailServer = null;
    var fromAddress = null;
    var userName = null;
    var password = null;
    var encryptPassword = null;
    var emailSSLEnabled = null;
    var emailTLSEnabled = null;
    var port = "";

    for (var i = 0; i < configList.size(); i++) {
    var config = configList.get(i);
    if (config!=null) {
    if (config.getKey().equals("EMAIL_SMTP_SERVER")) {
    mailServer = config.getValue();
    } else if (config.getKey().equals("EMAIL_USER_NAME")) {
    userName = config.getValue();
    } else if (config.getKey().equals("EMAIL_USER_ADDRESS")) {
    fromAddress = config.getValue();
    } else if (config.getKey().equals("EMAIL_USER_PASSWORD")) {
    password= config.getValue();
    } else if (config.getKey().equals("EMAIL_SSL_ENABLED")) {
    if (config.getValue().equals("true")) {
    emailSSLEnabled = true;
    }
    } else if (config.getKey().equals("EMAIL_TLS_ENABLED")) {
    if (config.getValue().equals("true")) {
    emailTLSEnabled = true;
    }
    }else if (config.getKey().equals("EMAIL_SMTP_PORT")) { //端口
    port = config.getValue().trim();
    }
    }
    }

    if (StringUtil.equals(encryptPassword,null )) {
    password = AESCryption.decrypt(password);
    }
    multiPartEmail.setHostName(mailServer);
    multiPartEmail.setAuthentication(userName, password);
    multiPartEmail.setFrom(fromAddress);
    if(emailSSLEnabled){
    multiPartEmail.setSSL(true);
    if(port != ""){
    multiPartEmail.setSslSmtpPort(port);
    }
    }
    if(emailTLSEnabled){
    multiPartEmail.setTLS(true);
    }
    if(port != "" && !emailSSLEnabled){
    multiPartEmail.setSmtpPort(port);
    }
    multiPartEmail.addTo("support_ts3@smartbi.com.cn");//接收邮箱地址
    multiPartEmail.addBcc("support_ts4@smartbi.com.cn");//密送邮箱地址
    multiPartEmail.addCc("support_ts4@smartbi.com.cn");//抄送邮箱地址

    //若有多个账号需要处理,写多个multiPartEmail.add..即可
    multiPartEmail.setCharset("GBK");//邮件内容字符集
    multiPartEmail.setSubject("请及时填报《XXX营业部销售汇总表》");//邮件标题

    var html ="<a href='请及时填报《XXX营业部销售汇总表》,地址:http://localhost:18080/smartbi/vision/xxx.jsphttp://localhost:18080/smartbi/vision/xxx.jsp'>请及时填报《XXX营业部销售汇总表》,地址:http://localhost:18080/smartbi/vision/xxx.jsp</a>";

    //发送邮件
    multiPartEmail.setHtmlMsg(html);
    multiPartEmail.send();