博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

BizTalk使用SMTP发送Mail

Posted on 2010-07-08 20:56  Jason.Liao  阅读(441)  评论(0编辑  收藏  举报

  很多时候,我们需要一些Common的程序来处理日常的一些事务。例如,有时候我们需要提供一些底层的程序,最近就做了一个能够AutoMail的Application。

  对于BizTalk来说,他自带了一个SMTP的Adapter,使用这个Adapter就可以实现我们的目标。

  首先,对于这个Common的Application,我们为他创建了一个独立的主机      SMTPHost

  然后,我会创建这个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的一些信息。

MailConfig

其中SMTPHost和From这一行不是必须的,如果你在SMTP的Send Handle里面配置了的话。

接下来看MailTo的写法:

MailTo

。最后要看一下发送端口的配置:

SendPort

这个Port使用的是DynamicBinding,使用我们定制的Pipeline。

接着生成Strong Key文件,编译部署,最后,在Configration的时候将主机选为我们最开始创建的那个Host。

 

启动流程,一切准备就绪了,接下来只需要调用就好了。

CallSMTP

这样一个简单的Common的AutoMail程序就完成了,只要我们想用了,就可以随时的调用他了。