(本文档仅供参考)
问题说明
如何在计划任务实现通过邮件定期发送文本信息给相关人员,不需要任何附件,只是一个文本链接。
如:王先生,请及时填报《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();
评论
赵尉余 发表:
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();