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

2024-03-25 05:38

本文主要是介绍mule in action翻译17 : 3.5 使用EMAIL传输,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

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翻译17 : 3.5 使用EMAIL传输的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843990

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti