`

mule in action翻译17 : 3.5 使用EMAIL传输

    博客分类:
  • ESB
阅读更多

 

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 。

 

  • 大小: 72.7 KB
  • 大小: 60.6 KB
  • 大小: 41.5 KB
  • 大小: 62.7 KB
分享到:
评论

相关推荐

    Mule in Action, 2nd Edition

    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 in Action》一书深入探讨了Mule——一个轻量级消息框架与高度分布式的对象代理系统,为读者提供了全面的理论与实践指导。本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置...

    mule in action 说明+文档介绍

    mule in action 和doc文档详细介绍 Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持30多种传输协议...

    mule in action

    《Mule in Action》是一本专注于Mule ESB(企业服务总线)的入门教程,旨在帮助读者系统地学习和理解这一强大的集成平台。Mule ESB是开源领域中的一个重量级选手,常用于构建灵活、可扩展的企业级集成解决方案。这...

    Mule in Action

    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 in Action》第二版是一本详细介绍Mule ESB(Enterprise Service Bus)这一著名开源框架的书籍。该书由David Dossot、John D...

    Mule in action

    《Mule in Action》这本书是关于Mule ESB(企业服务总线)的权威指南,由David Chappell和James Strachan等作者撰写。Mule ESB是一种开源的集成平台,它允许开发者轻松地连接各种系统、服务和应用程序,实现数据的...

    Mule in Action, Second Edition

    总体而言,Mule in Action, Second Edition这本书是关于Mule ESB使用和集成实践的权威指南,涵盖了从基础概念到高级特性的广泛主题。本书适合于那些希望深入学习和利用Mule ESB进行企业级应用集成的开发人员和架构师...

    mule in action 即mule实战源码

    《Mule in Action》是关于Mule ESB的实战指南,该书深入浅出地介绍了如何使用Mule这一强大的企业服务总线(ESB)进行应用程序集成。Mule ESB以其用户基数庞大、文档详尽以及社区活跃而备受赞誉,是企业级集成解决...

    mule in action mule 实战

    Mule in Action是一本关于Mule ESB(企业服务总线)的实战指南,旨在为读者提供深入的实践知识和案例分析。ESB作为一种流行的中间件技术,用于实现不同系统之间的服务集成。Mule作为一个开源的ESB解决方案,通过其...

    Mule in Action 2014

    《Mule in Action》第二版是一本全面介绍如何使用Mule ESB进行高效集成开发的书籍,由David Dossot、John D’Emic和Victor Romero共同编写。 #### 二、Mule ESB的关键特性 **1. 消息处理:** Mule ESB支持多种消息...

    mule-connector-domino:用于 Mule ESB 3.5 的 Domino 连接器

    **Mule ESB 3.5 Domino 连接器详解** Mule ESB(Enterprise Service Bus,企业服务总线)是一种强大的集成平台,它允许不同的应用程序和服务之间进行数据交换和流程自动化。在Mule ESB中,连接器扮演着至关重要的...

    MULE IN ACTION

    MULE IN ACTION Mule是一个企业服务总线(ESB)消息框架,它为集成不同系统和应用程序提供了一种轻量级的、易于使用的方法。Mule的设计哲学围绕着灵活性和可扩展性,通过其高度可插拔的架构,支持多种传输协议和...

    实战Mule:利用Mule调用XFire发布的文件上传服务

    然后,我们可以将应用部署到Mule运行时环境,如Mule Standalone或云平台,以供实际使用。 7. **监控与优化**:在生产环境中,对Mule应用进行性能监控,确保文件上传服务的稳定性和效率。根据需求,可以进一步优化...

Global site tag (gtag.js) - Google Analytics