kettle发送邮件-自定义邮件正文

Posted on Posted in kettle示例
之前曾多次使用kettle进行作业监控,当Kettle需要通过邮件发送统计结果时,之前我的做法都是通过邮箱附件的方式实现.而对于结果集很小的场景,如果依然使用附件方式,整个邮件的核心内容会显得非常不直观.
而如何在邮箱正文中通过表格方式展现统计结果呢?
邮件正文中支持HTML格式,那解决办法就是自行拼出HTML,然后填到邮箱正文中.
自行拼接HTML串,是此任务中最麻烦的点,也是最关键的点.另外,要注意使用组件"设置变量"将统计结果写入变量中.
下面展示一下,将Oracle查询得到的结果集拼成HTML的实例:(Sql拼接HTML是一种方式,也可以尝试使用其他方式.)

1.准备邮箱正文

2.表输入:

 

WITH stu as
(
SELECT 1001 AS ID,'小明' AS name,12 AS age,'北京' AS address FROM dual UNION ALL
SELECT 1002 ,'小东',10,'南京' FROM dual UNION ALL
SELECT 1003 ,'小飞',14,'天津' FROM dual UNION ALL
SELECT 1004 ,'小连',13,'深圳' FROM dual UNION ALL
SELECT 1005 ,'小楠',12,'大连' FROM dual UNION ALL
SELECT 1006 ,'小红',9,'合肥' FROM dual
)
SELECT replace(wm_concat(v_stu.info),',','') AS v_info from
(
SELECT '<table border ="1">' AS info FROM dual union all
SELECT '<tr><th>学号</th><th>姓名</th><th>年龄</th><th>城市</th></tr>' AS info  FROM dual UNION all
SELECT '<tr><td align="center">'||stu.id||'</td><td  align="center">'||stu.name||'</td><td align="center">'||stu.age||
'</td><td  align="center">'||stu.address||'</td></tr>' from stu UNION ALL
SELECT '</table>' AS info FROM dual
) v_stu

 

3.设置变量:

  

4.邮件通知:

  

 

5.邮件效果:

  

作者:夏光辉
链接:https://www.jianshu.com/p/8fccb54eb66e来源:简书
著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。