sendemail

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发送邮件是系统经常用到的一个功能,他调用了一些固定的组件,我们只是在调用这些组件之前把参数设置好传递过去就可以了。下面来看看具体操作。

找到一个有send email功能的页面。

把邮箱地址填进去, 点email selected forms button就把邮件发送出去了。 我们来看下代码。

 

上面两个组件是关键, 19是设定相关参数,

Receiver: 要发送的邮箱地址

Subject: 邮件的标题

BodyText:邮件的内容。

ContentType:邮件的格式,一般是'text', 'text/html'.

AttFileList:邮件的附件,这是一个字符串,传的是文件在本地的完整路径名加上文件名

22号节点是调用了另一个vrm sendemail.vrm.

然后我们来看这个文件。首先会去系统常数表里取到一些基本的信息。这些信息都是必须的,后面要用到。

 

我们发现他会先往EmailSchedule表里插一条数据。这个表记录的是所有发email的信息。status是'NonDTS-Progress'说明他不是通过DTS来发邮件的, 而是立即发送。其它存的信息都是我们刚才传过来的。

然后就是调用了7号组件。这个组件就是用来发送邮件的。主要的方法是一个delphi方法 Res := SendEmailEx(EmlData, Err);具体这个方法里面怎么写的就不用去追究了,总之就是把这个里面要用到的参数都设置正确,那么调用这个组件就可以发送成功了。

 上面说的是手动发送邮件的做法,因为发送邮件是需要一定的时间的,而且也不是很紧急,所以我们常常会把它放到DTS来发送。每隔几分钟系统去跑一下DTS看一下有没有邮件需要发送的,这样就可以提升有些页面的效率,不会一直在等待中。

他的做法跟手动差不多,只是不调用sendemail这个vrm,而是参数先存在表EmailSchedule里,状态是Schedule,这样DTS去读取到这样的数据的时候再去发送邮件。如果发送失败了状态会是Fail,同样如果失败了系统也可以重复尝试发送。

 

posted @ 2017-03-23 14:09  somehot  阅读(399)  评论(0编辑  收藏  举报