ASP.NET历险(一)——利用ASP与ASP.NET发E-mail

第一次在CSDN发文章,感觉真的是诚惶诚恐。毕竟像我这样一个菜鸟级人物在众高手面前讲述自己的经验无疑于班门弄斧,关公面前耍大刀。不过,这一系列文章记述的是我自己的一些经历,是自己在对ASP.NET了解甚少的情况下,接下了建设两个网站任务的经历。或许我把文章定成历险有点夸张,不过在学习与提高的过程中那种山穷水尽疑无路,柳暗花明又一村的感觉着实让人大叫过瘾。就请各位随我走一趟,希望不会让大家失望,同时希望各位高手多多批评,多多责骂。:)

先说我架设的第一个网站吧。在准备架设第一个网站之前,我有一点ASP的设计实践经验,对于开发环境的选择,我曾经犹豫过,最终我还是选择了ASP.NET。因为我对C#的语言特性很感兴趣,同时对那种意大利面式的ASP实在是无法忍受了。就这样,捧着一本厚厚的书,我就开始投入到ASP.NET之旅了。

俗话说,万事开头难。可是,学习ASP.NET却是那样的轻易就可以上手了。至于如何上手,如何入门,已经有很多文章讲述了,这里我就不多说了。建设网站的进度很快,以至于我向老板吹嘘我能提前完成任务。老板惊讶于我的的效率,我笑着对他说,这都是ASP.NET的好处啊。然而事情永远都不会如自己所愿的那样,就在整个网站的最后一环——自动发E-Mail上出了问题(终于都到正题了,大家都烦了吧)。

我原来的打算是利用Namespace中的“System.Web.Mail"中封装的类库去建立MailMessage对象,然后利用Send方法去发送邮件(这个例子到处都有)。当我写完(抄完)了一段程序之后,满心欢喜的以为自己大功告成了,可是我错了。因为我所在的公司的规模很大,公司内部使用Exchange Server进行收发Mail,如果是脱离了Outlook,使用服务器上的SmtpServer会有很长的延迟,甚至会丢信,这样是不允许的。看来现成的东西是不能用的了,稍加思索之后,我觉得应该用客户端调用Outlook发E-Mail的办法。可是,该怎么调用呢?我马上想到了CSDN,就在这里发了帖子。热心的朋友给我想了不少的办法,譬如说利用

 1<a href="mailto">等,可是这些想法都不是我想要的。因为E-Mail的内容是根据用户的选择自动生成的,而邮件列表是与一个DropdownList控件进行绑定的。我一直不停的在尝试,在寻找,甚至跑到 www.ASP.NET 的论坛上去提问。这个问题就想一条鸿沟,怎么都无法逾越,我几乎都绝望了。就在我觉得这是一个Mission Impossible的时候,是CSDN的saucer给了我最大的帮助,最终的解决方案如下: 
 2
 3建立一个专门发邮件的Sendmail.aspx: 
 4
 5<html>
 6<head>
 7<style type="text/css">   
 8<!--   
 9@import ..\css\style.css;   
10\-->   
11</style>
12</head>
13<script language="vbscript">   
14sub MailSend(ito,isubject,ibody,icc)   
15Dim myOlApp   
16Set myOlApp = CreateObject("Outlook.Application")   
17Dim objMail   
18set objMail=myOlApp.CreateItem(olMailItem)   
19objMail.To = ito   
20objMail.Cc = icc   
21objMail.Subject = isubject   
22objMail.HtmlBody = ibody   
23objMail.Save   
24objMail.Send   
25Set myOlApp = Nothing   
26end sub   
27</script>   

Dim tsubject,tbody,tto,tcc
tsubject=Request.QueryString("Subject")
tbody=Request.QueryString("Body")
tto=Request.QueryString("To")
tcc=Request.QueryString("Cc")
tcc=Chr(34)+tcc+Chr(34)
tto=Chr(34)+tto+Chr(34)
tsubject=Chr(34)+tsubject+Chr(34)
tbody=Chr(34)+tbody+Chr(34)
Response.Write("<script language="vbscript"></script></html></a>

Published At
Categories with Web编程
Tagged with
comments powered by Disqus