原文: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-752\data-integration\lib目录下即可

第二步,添加步骤,修改发信人中文显示为乱码的问题:
                           这一步的解决,我这边是新建了一个转换(附件中对应的转换名字为:发件人姓名中文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);

【转】Kettle发送邮件步骤遇到附件名是中文名变成乱码的问题解决办法的更多相关文章

  1. 关于confluence上传文件附件预览查看时出现乱码的问题解决办法

    在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...

  2. PHPMailer发送邮件中文附件名是乱码

    可能使用了PHPMailer发送邮件的朋友带中文附件名时会出现乱码,下面我来介绍一个解决办法. 比如我们要发送的附件是"测试.txt",如果在添加附件的时候强制使用指定文件名的方式 ...

  3. C# 发送邮件 附件名称为空

     示例代码: // 1.创建邮件 MailMessage mailMsg = new MailMessage(); mailMsg.To.Add(new MailAddress("test@ ...

  4. 使用JavaMail发送邮件(含文本/附件/图片)的工具类

    记录利用公司内搭建的smtp邮件服务器,使用javax mail发送邮件的程序 package com.test.mailTest; import java.util.Date; import jav ...

  5. ASP.NET用QQ,网易发送邮件以及添加附件

    教程:ASP.NET用QQ,网易发送邮件以及添加附件 这是我用QQ邮箱出现的异常: 命令顺序不正确. 服务器响应为:Error: need EHLO and AUTH first !无法从传输连接中读 ...

  6. kettle发送邮件

    使用kettle发送邮件是为了更好的监控ETL的加载信息 以下是我通过测试的一个案例 1. JOB示意图 2.邮件发送配置详细信息 2.1地址信息配置 2.2 服务器信息配置 上图中所说的" ...

  7. iOS12系统应用发送邮件中的附件

    iOS12系统应用发送邮件中的附件 iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档.图片等,可以以附件的形式进行发送.此时需要使用addAttachmentData(_:mi ...

  8. 下载的附件名总乱码?你该去读一下 RFC 文档了!

    纸上得来终觉浅,绝知此事要躬行 Web 开发过程中,相信大家都遇到过附件下载的场景,其中,各浏览器下载后的文件名中文乱码问题或许一度让你苦恼不已. 网上搜索一下,大部分都是通过Request Head ...

  9. springboot发送邮件(含附件)

    引入maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

随机推荐

  1. Android4.0 Launcher 源码分析1——Launcher整体结构

    1.Launcher整体结构 桌面程序其实并不包含桌面壁纸,桌面壁纸其实是由 WallpaperManagerService来提供,整个桌面其实是叠加在整个桌面壁纸上的另外一个层. 1.1 WorkS ...

  2. ActiveMQ开发注意要点

    目录1.如何保证消息的成功处理2.避免消息队列的并发3.消息有效期的管理4.过期消息,处理失败的消息如何处理 1.保证消息的成功处理消息发送成功后,接收端接收到了消息.然后进行处理,但是可能由于某种原 ...

  3. C/C++内存管理详解

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄 ...

  4. beego 遇到的一些问题

    1.安装 beego 出现的问题 今天在通过 go get -u github.com/astaxie/beego 安装 beego 应用时,出现下面问题: # cd .; git clone htt ...

  5. 业务ID 生成策略

    业务ID 生成策略,从技术上说,基本要借助一个集中式的引擎来帮忙实现. 为了扩大业务ID生成策略的并发问题,还有更为技巧性的提升. 先来介绍普遍的分布式ID生成策略: 1. 利用DB的自增主键 这里又 ...

  6. SVN 基本的工作循环

    基本的工作循环 Subversion有许多特性.选项和华而不实的高级功能,但日常的工作中你只使用其中的一小部分,在这一节里,我们会介绍许多你在日常工作中常用的命令. 典型的工作周期是这样的: 更新你的 ...

  7. 资料汇总--Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)【转】

    开发环境:Tomcat9.0 在使用Ajax实现Restful的时候,有时候会出现无法Put.Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1.使用地址重写的方法传递参数 ...

  8. oracle 报错归纳总结

    1.ORA-00904 正常情况下是找不到字段(大概率字段名字错了) 还有一种比较特别的情况实在设计DB的时候,字段小写,在sql查询工具自动提示的时候都是大写,造成字段找不到的情况.

  9. SQL查询出某字段不等于某值的行(其中有为NULL的字段)

    表1如下:TBD1100   TBD1101   TBD1102------------------------------------------  1001            水果       ...

  10. Struts2 学习笔记--Action Method--接收参数

    struts2中的路径问题 注意:在jsp中”/”表示tomcat服务器的根目录,在struts.xml配置文件中”/”表示webapp的根路径,即MyEclipse web项目中的WebRoot路径 ...