zoukankan      html  css  js  c++  java
  • 【转】Kettle发送邮件步骤遇到附件名是中文名变成乱码的问题解决办法

    原文:http://www.ukettle.org/thread-607-1-1.html

    本帖最后由 大白菜 于 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-752data-integrationlib目录下即可


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


                               
    [Java] 纯文本查看 复制代码
    1
    2
    3
    4
    5
    6
    //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);
  • 相关阅读:
    Linux命令备忘录: jobs 显示Linux中的任务列表及任务状态命令
    解决软件启动报error while loading shared libraries: libgd.so.2: cannot open shared object错误
    SSH远程登录和端口转发详解
    《PHP内核探索系列文章》系列分享专栏
    如何防止网页被植入广告,内容被监控-HTTPS
    深入分析PHP优化及注意事项
    php模拟登陆的两种实现方法分析
    PHP中实现MySQL嵌套事务的两种解决方案
    php+Mysqli利用事务处理转账问题实例
    Yaf零基础学习总结5-Yaf类的自动加载
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/7809228.html
Copyright © 2011-2022 走看看