本文为用户使用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 2025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 sandbox.hortonworks.com ESMTP Apache NiFi
ehlo sandbox
250-sandbox.hortonworks.com
250-8BITMIME
250-SIZE 67108864
250 Ok
MAIL
FROM: <tim@sparkdeveloper.com>
250 Ok
RCPT TO: <tspann@hortonworks.com>
250 Ok
DATA
354 End data with
<CR><LF>.<CR><LF>
hello
.
250 Ok
利用SWAKS See可以更好地测试SMTP: 邮件发送测试: swaks --to tspann@hortonworks.com --server localhost:2025
Received: from hw13125.home (localhost [127.0.0.1])
by sandbox.hortonworks.com with SMTP (Apache NiFi) id IRPEF4WI
for tspann@hortonworks.com
Date: Wed, 10 Aug 2016 17:19:12 -0400To:
tspann@hortonworks.com
From: tspann@hw13125.home
Subject: test Wed,
10 Aug 2016 17:19:12 -0400
X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
MIME-Version: 1.0
Content-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支持生产使用吧。 |