mule in action翻译17 : 3.5 使用EMAIL传输
email常被看成是主要用来进行个人之间通讯的,但它不仅仅是一个会话机制。email可用来转发监控警告,发送订单收据,协调调度。想一下当你在网站注册时、在亚马逊买书时,是不是经常会收到自动发送的邮件?这就是email传输的例子。本节中探讨如何使用email传输处理并生成这些消息。先看使用IMAP接收这些消息,然后看如何使用SMTP发送消息。
3.5.1 使用IMAP接收email
IMAP连接器允许你使用IMAP协议从邮件服务器接收邮件。IMAP --Internet Message Access Protocol
获取邮件的流行的方式,多数邮件服务器和客户端都支持IMAP。 IMAP是和不提供常规集成机制的应用进行集成的方便方式。例如一个遗留系统周期性的生成状态邮件,但不提供任何类型的可编程API。有时email是应用集成的更好的方式。比如当你需要以编程方式回应电子邮件确认时。这种情况下使用IMAP endpoint非常合适。
表3.4 列出IMAP一般的配置属性。
Prancing Donkey最近购买了一个由Frozen North Freezing公司制造的制冷系统。
该制冷系统有这么个功能:当某个环境指标超过阈值时会向某个地址发送邮件。Prancing Donkey想使用
这个功能驱动一些附属功能。例如,希望当这些事件发生时维护人员会受到短信通知。
他们也想发送数据到一个复杂事件处理系统, 以用来推断什么时候会可能发生灾难性事件。
他们联合使用IMAP传输、JMS topic、文件传输来实现这些功能。如下面列表及3.14图所示。
Listing 3.18 Dispatch cooling emails to a JMS topic
<jms:activemq-connector name="jmsConnector" specification="1.1" brokerURL="${jms.url}" /> <!-- 注释1 配置IMAP连接器 --> <imap:connector name="imapConnector" deleteReadMessages="true" checkFrequency="60000" /> <flow name="dispatchCoolingAlerts"> <!-- 配置IMAP inbound endpoint,指定邮件服务器详细信息 --> <imap:inbound-endpoint host="${imap.host}" port="${imap.port}" user="cooling" password="password"> </imap:inbound-endpoint> <!-- 这个all 路由器会分发到多个endpoint --> <all> <file:outbound-endpoint path="./data/cooling/reports"> <!-- 表达式转换器用来从mule消息中提取邮件附件 --> <expression-transformer expression="#[message.inboundAttachments.report]" /> </file:outbound-endpoint> <jms:outbound-endpoint topic="cooling.alerts"> <!--注释2 转换email为String形式 --> <email:email-to-string-transformer /> </jms:outbound-endpoint> </all> </flow>
all 路由器可以把同个消息发送到多个endpoint,第5章深入讨论。现在用它保存邮件的附件
(本例是制冷报告的PDF)到一个归档目录,然后把email消息发送到JMS topic。某些协议是
支持附件的比如SOAP 和 HTTP 。本例中你可以使用附件计算器来提取附件,如列表3.18中一样。
注释1处,是显示定义IMAP连接器。设置checkFrequency为10分钟(单位毫秒)。
设置deleteReadMessages为true,消息被读取后将会在服务器上删除。
注释2处,注意email的命名空间。email命名空间包含消息处理器,这里用的email-to-email
String转换器,这些处理器简化了邮件消息处理。
最佳实践 使用backupFolder和backupEnabled属性时要注意。mule将为它处理的每个
消息创建一个文件夹。在邮件压力大的环境下可能导致文件系统问题比如文件系统地方inode被耗尽。
3.5.2 使用SMTP发送邮件
SMTP传输让你可以使用一个outbound endpoint发送邮件消息。这在多种情况下是有用的。你已经看到了Prancing Donkey公司的制冷系统使用SMTP发送警告数据。你现在对机动接受购物确认邮件、论坛订阅邮件没有疑问了。在完成一个长耗时处理后发送通知送邮件的方式的是比较有用的,比如备份完成时进行通知。
来看如何配置SMTP连接器和endpoint。
列表3.5 列出了配置SMTP的常用属性。一般可以通过这些属性指定生产的邮件头信息。
来回顾一下本章开头时提到的 Arnor Accounting 的例子。列表3.14 中当收到 Arnor Accounting 应用的回调时分发一个JMS消息。列表3.15 中添加了一个对JMS topic的订阅者,以记录事件。现在添加另外一个订阅者,当支出报表别处理后发送email给Prancing Donkey 会计人员。
Listing 3.19 Using an SMTP endpoint to send an email
<flow name="sendExpenseReportEmails"> <!--注释1 订阅expenses.status topic--> <jms:inbound-endpoint topic="expenses.status" exchange-pattern="one-way"/> <!--配置 SMTP outbound endpoint--> <smtp:outbound-endpoint from="mule@prancingdonkey.com" host="${smtp.host}" port="${smtp.port}" subject="Expense Report Processed" to="accounting@prancingdonkey.com"> <!--把消息payload转为email--> <email:string-to-email-transformer/> </smtp:outbound-endpoint> </flow>
注释1处 配置JMS endpoint,当消息发送到 expenses.status topic时,这里的JMS endpoint会受到通知。
这些消息的payload将转换为email,并通过SMTP outbound endpoint发送到accounting@prancingdonkey.com 。
相关推荐
Mule in Action, Second Edition is a totally-revised guide covering Mule 3 fundamentals and best practices. It starts with a quick ESB overview and then dives into rich examples covering core concepts ...
《Mule in Action》一书深入探讨了Mule——一个轻量级消息框架与高度分布式的对象代理系统,为读者提供了全面的理论与实践指导。本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置...
mule in action 和doc文档详细介绍 Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持30多种传输协议...
《Mule in Action》是一本专注于Mule ESB(企业服务总线)的入门教程,旨在帮助读者系统地学习和理解这一强大的集成平台。Mule ESB是开源领域中的一个重量级选手,常用于构建灵活、可扩展的企业级集成解决方案。这...
Mule in Action is acomprehensive tutorial designed for working Java developers. This authoritativebook explores the architecture and the main features of version Mule 2 throughnumerous running ...
### Mule in Action 第二版 英文正式版 关键知识点概述 #### 一、书籍简介与背景 《Mule in Action》第二版是一本详细介绍Mule ESB(Enterprise Service Bus)这一著名开源框架的书籍。该书由David Dossot、John D...
《Mule in Action》这本书是关于Mule ESB(企业服务总线)的权威指南,由David Chappell和James Strachan等作者撰写。Mule ESB是一种开源的集成平台,它允许开发者轻松地连接各种系统、服务和应用程序,实现数据的...
总体而言,Mule in Action, Second Edition这本书是关于Mule ESB使用和集成实践的权威指南,涵盖了从基础概念到高级特性的广泛主题。本书适合于那些希望深入学习和利用Mule ESB进行企业级应用集成的开发人员和架构师...
《Mule in Action》是关于Mule ESB的实战指南,该书深入浅出地介绍了如何使用Mule这一强大的企业服务总线(ESB)进行应用程序集成。Mule ESB以其用户基数庞大、文档详尽以及社区活跃而备受赞誉,是企业级集成解决...
Mule in Action是一本关于Mule ESB(企业服务总线)的实战指南,旨在为读者提供深入的实践知识和案例分析。ESB作为一种流行的中间件技术,用于实现不同系统之间的服务集成。Mule作为一个开源的ESB解决方案,通过其...
《Mule in Action》第二版是一本全面介绍如何使用Mule ESB进行高效集成开发的书籍,由David Dossot、John D’Emic和Victor Romero共同编写。 #### 二、Mule ESB的关键特性 **1. 消息处理:** Mule ESB支持多种消息...
**Mule ESB 3.5 Domino 连接器详解** Mule ESB(Enterprise Service Bus,企业服务总线)是一种强大的集成平台,它允许不同的应用程序和服务之间进行数据交换和流程自动化。在Mule ESB中,连接器扮演着至关重要的...
MULE IN ACTION Mule是一个企业服务总线(ESB)消息框架,它为集成不同系统和应用程序提供了一种轻量级的、易于使用的方法。Mule的设计哲学围绕着灵活性和可扩展性,通过其高度可插拔的架构,支持多种传输协议和...
然后,我们可以将应用部署到Mule运行时环境,如Mule Standalone或云平台,以供实际使用。 7. **监控与优化**:在生产环境中,对Mule应用进行性能监控,确保文件上传服务的稳定性和效率。根据需求,可以进一步优化...