很多时候,我们需要一些Common的程序来处理日常的一些事务。例如,有时候我们需要提供一些底层的程序,最近就做了一个能够AutoMail的Application。
对于BizTalk来说,他自带了一个SMTP的Adapter,使用这个Adapter就可以实现我们的目标。
首先,对于这个Common的Application,我们为他创建了一个独立的主机
然后,我会创建这个Host的一个Instance,
建立这个主机和主机实例可以保证这个Common的Application能独立于你的其他的主机实例存在。
考虑到我们可能会使用到多个SMTP服务来发送Mail,这是我们可以在SMTP的Adapter界面新增一个Send Handle,在这个Handle里面可以配置我们要使用的SMTP的Server和From Address。
配置好这些后,我们的准备工作就完成了。
接下来我们开发流程。
由于这是一个Common的Application,所以要尽可能的把他做成单一的功能,而且有比较适合的接口给其他的流程调用。
首先,为发送Mail定制一个Pipeline,在这个Pipeline里面要对Mail内容添加MIME信息以及对Mail内容加密之类的,
接下来就是我们的Orchestration了,这个很简单。但是我们这个是要给其他的App调用的,所以会使用一些输入的参数。我使用的是String的输入参数。
这几个参数就是我们发送Mail的时候必定会用到的,所以把它门做成了接口。这个Orchestration没有一个Active的启动,当他被Call道德时候,只要传给他参数就可以了。当然,他也是Public的。
在MessageAsign中,我们要配置一个System.String类型的MultipartType的Message,这个message将成为我们Mail内容,并且我们将用它来设置Mail的一些信息。
其中SMTPHost和From这一行不是必须的,如果你在SMTP的Send Handle里面配置了的话。
接下来看MailTo的写法:
。最后要看一下发送端口的配置:
这个Port使用的是DynamicBinding,使用我们定制的Pipeline。
接着生成Strong Key文件,编译部署,最后,在Configration的时候将主机选为我们最开始创建的那个Host。
启动流程,一切准备就绪了,接下来只需要调用就好了。
这样一个简单的Common的AutoMail程序就完成了,只要我们想用了,就可以随时的调用他了。