本文为用户使用Apache NiFi最新版本来监听SMTP邮件,并以编程方式做出反应以及捕捉数据提供了指导。
首先就可以注意到Apache NiFi 1.0.0应用了很棒的新界面,更加清晰也更加方便使用。
下面先添加一个ListenSMTP处理器,用作邮件网关/ SMTP服务器。正如用户所看到的,这里还有能够从邮件中提取附件和标题的处理器。
同时,还要确保设置了Listening Port,SMTP主机名和Max. # of Connections。
邮 件处理的整个流程其实相当简单,所以也比较容易理解。第一步,在TCP Port监听SMTP(本文中选用了2025,如果具有Root访问权限的话建议在25上运行)。然后把原始流文件传送到HDFS中。同时,需要提取附件 放在一个单独的HDFS目录里。最后退出邮件标题并把它们寄给一个HDFS文件。此外,本文还在底部做了一个小测试,读取文件然后发送邮件至 ListenSMTP进行测试。
如果用户想要在HDP 2.4沙盒上运行Apache NiFi 1.0.0,则需要安装Java 8并把它作为JDK替代。
本文中添加了Java 8作为替代,同时在bin/nifi.sh之上指定了Java_HOME。所以接下来就可以运行必需的Java 8了。
从命令行中发送一个SMTP测试消息:
telnet localhost 2025Trying 127.0.0.1...Connected to localhost.
Escape character is '^]'.220 sandbox.hortonworks.com ESMTP Apache NiFi
ehlo sandbox250-sandbox.hortonworks.com250-8BITMIME250-SIZE 67108864250 Ok
MAIL
FROM: <tim@sparkdeveloper.com>250 Ok
RCPT TO: <tspann@hortonworks.com>250 Ok
DATA354 End data with
<CR><LF>.<CR><LF>
hello
.250 Ok
利用SWAKS See可以更好地测试SMTP:
邮件发送测试:
swaks --to tspann@hortonworks.com --server localhost:2025Received: from hw13125.home (localhost [127.0.0.1])
by sandbox.hortonworks.com with SMTP (Apache NiFi) id IRPEF4WI
for tspann@hortonworks.com; Wed, 10 Aug 2016 17:19:12 -0400 (EDT)Date: Wed, 10 Aug 2016 17:19:12 -0400To:
tspann@hortonworks.comFrom: tspann@hw13125.homeSubject: test Wed,10 Aug 2016 17:19:12 -0400X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
MIME-Version: 1.0Content-Type: multipart/mixed; boundary="----=_MIME_BOUNDARY_000_98059"------=_MIME_BOUNDARY_000_98059
Content-Type: text/plain
This is a test mailing
------=_MIME_BOUNDARY_000_98059
Content-Type: application/octet-stream
Content-Disposition: attachment
Content-Transfer-Encoding:
BASE64
------=_MIME_BOUNDARY_000_98059--
配置用于接收邮件消息的服务器是很容易,只需要在其中添加一个主机名和端口。
一旦用户建立好流程,就要创建一个模板并在版本控制之外保存XML。
模板创建已经被转移到Operate控制下。
如果不幸搞混了自己在做的事情,可以借助右上角的搜索功能。
最后,请记住这只是一个测试版产品,还没有准备好生产。所以,还是耐心等待HDF 2.0支持生产使用吧。