找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

查看: 1340|回复: 15

[已解决] 【原创】kettle发送邮件添加附件中文名乱码解决方案

[复制链接]

25

主题

87

帖子

689

积分

版主

Rank: 7Rank: 7Rank: 7

积分
689
发表于 2016-3-7 10:15:40 | 显示全部楼层 |阅读模式
本帖最后由 大白菜 于 2016-3-7 10:18 编辑

导语:看到群里很多朋友问kettle发送邮件附件中文名乱码(发件人如果是中文的话,也乱码),怎么办,又有论坛朋友在论坛问。http://www.ukettle.org/forum.php?mod=viewthread&tid=322&page=1#pid4708 ,然后又见有朋友在博客里面发的通过修改源码解决的方案。个人受到启发,就尝试有了自己的一套解决这个问题的方案,现在分享出来,希望各位朋友能提供一个更好的解决方式。

解决相关问题:kettle发送邮件,如果带附件的话,会有以下两个问题:                                                                                                                                                                            ①附件如果是中文的话,会出现中文名的附件在邮箱里面显示为乱码
                         ②发送人如果是中文的话,会出现发送人显示为乱码

首先我贴出目前我能查到的一种解决方式的链接地址:《 KETTLE 发送邮件乱码修正》
其次,我给出我自己的解决方式:

              附件中文名显示乱码的问题,个人猜测为kettle运行所需要的mail.jar包,版本滞后了,如果替换为新的mail包,是可以支持中文的。
              发送人中文名显示乱码的问题,这部分问题通过替换mail.jar包也没能解决,所以,通过参考网上人修改发送部分代码的方式,通过在kettle里面写java脚本,来修补这个问题。


             第一步,添加新的mail.jar包,修改附件中文名显示乱码的问题:
                          jar包下载地址:https://java.net/projects/javamail/pages/Home#Download_JavaMail_Release,下载下来的文件为:javax.mail-1.5.5.jar
                          下载所在位置如下图所示:

                          下载之后,将jar包添加到\pdi-ce-5.1.0.0-752\data-integration\lib目录下即可


             第二步,添加步骤,修改发信人中文显示为乱码的问题:
                           这一步的解决,我这边是新建了一个转换(附件中对应的转换名字为:发件人姓名中文encode.ktr通过java代码这个组件来对发件人这个字段进行
                      处理来解决。下面是核心的代码:
                           


                           
[Java] 纯文本查看 复制代码
//get mail_sender_name field value
                                 String foobar = get(Fields.In, "mail_sender_name").getString(r);
                                  //encode mail_sender_name value
                                  foobar=MimeUtility.encodeText(foobar);
                                //set mail_sender_name field value
                                 get(Fields.Out, "mail_sender_name").setValue(r, foobar);

最后,贴上我做的demo,供大家参考。
              对于附件中的,变量传递,主流程设置有问题的小伙伴,请私聊QQ623535597或者回复在帖子下来,我及时回复O(∩_∩)O~。
            




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖

12

主题

73

帖子

539

积分

高级会员

Rank: 4

积分
539
QQ
发表于 2016-3-7 10:23:02 | 显示全部楼层
这个不错。以前一直想解决的。先收藏

47

主题

620

帖子

8995

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8995
发表于 2016-3-7 10:25:04 | 显示全部楼层
非常不错,白菜一直都是开了外挂的管理员,谁有问题就帮人写解决方案,太给力了,白菜,我要表白!

1

主题

66

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2016-3-7 10:26:32 | 显示全部楼层
不错,有时间分享真好。感谢

1

主题

11

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2016-3-7 10:31:06 | 显示全部楼层
帮主好样的

1

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2016-3-11 16:41:37 | 显示全部楼层
高手,顶顶顶

5

主题

21

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2016-3-17 09:36:28 | 显示全部楼层
大神,收藏了

10

主题

35

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
发表于 2016-3-30 13:55:43 | 显示全部楼层
大白菜顶呱呱!

2

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2016-3-30 14:37:44 | 显示全部楼层
下载之后,将jar包添加到\pdi-ce-5.1.0.0-752\data-integration\lib目录下即可
我怎么没找到这个路径?文件下载了,放到哪?貌似还是不会弄...求大神协助。

2

主题

9

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2016-3-30 18:39:55 | 显示全部楼层
留名,学习学习.感谢楼主
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋| Pentaho | Kettle ( 沪ICP备14044064号 )  

GMT+8, 2017-1-20 17:54 , Processed in 0.319170 second(s), 57 queries .

Powered by Discuz!  uKettle

Copyright © 2014 Comsenz Inc.

快速回复 返回顶部 返回列表