分享
 
 
 

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

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

第一次在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,就在这里发了帖子。热心的朋友给我想了不少的办法,譬如说利用<a href="mailto">等,可是这些想法都不是我想要的。因为E-Mail的内容是根据用户的选择自动生成的,而邮件列表是与一个DropdownList控件进行绑定的。我一直不停的在尝试,在寻找,甚至跑到www.ASP.NET的论坛上去提问。这个问题就想一条鸿沟,怎么都无法逾越,我几乎都绝望了。就在我觉得这是一个Mission Impossible的时候,是CSDN的saucer给了我最大的帮助,最终的解决方案如下:

建立一个专门发邮件的Sendmail.aspx:

<html>

<head>

<style type="text/css">

<!--

@import ..\css\style.css;

-->

</style>

</head>

<script language=vbscript >

sub MailSend(ito,isubject,ibody,icc)

Dim myOlApp

Set myOlApp = CreateObject("Outlook.Application")

Dim objMail

set objMail=myOlApp.CreateItem(olMailItem)

objMail.To = ito

objMail.Cc = icc

objMail.Subject = isubject

objMail.HtmlBody = ibody

objMail.Save

objMail.Send

Set myOlApp = Nothing

end sub

</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>MailSend"+tto+","+tsubject+","+tbody+","+tcc)

Response.Write("</"+"script>")

%>

<body leftmargin=20>

<table width="90%">

<tr valign=middle>

<td height=300 align=center>

<p Style="font-size:20pt;font-familiy:Verdana, Arial,

Helvetica;font-weight:bold;color:#003399">Your Mail is sent successfully!</p>

</td>

</tr>

</table>

</body>

</html>

而在另外的需要发Mail的aspx文件中先定义好邮件的标题,正文等属性,然后使用如下语句:

string sendStr="SendMail.aspx?Subject="+System.Web.HttpUtility.UrlEncode(subjectStr)+"&Body="+System.Web.HttpUtility.UrlEncode(bodyStr)+"&To="+System.Web.HttpUtility.UrlEncode(Receiver.Items[0].Value)+"&Cc="+System.Web.HttpUtility.UrlEncode(otherReceiver);

Response.Redirect(sendStr);

//Receiver为ListBox控件的ID。

是不是觉得很简单呢?踏破铁鞋无觅处,得来全不费功夫啊。这个痛并快乐着的经历给予我更多的思考:调用客户端的对象,这是属于ClientScript的事情,ASP.NET是无法替代ClientScript来做的,就好像你可以轻易的通过Response.Redirect跳转到其他页面,可是却无法找到一个方法来实现打开一个新的Explorer 窗口,将需要打开的页面load进去。只能乖乖的使用将ClientScript写到页面上:

Response.Write("<script language=javascript>window.open("+ "'http://www.csdn.net');");

Response.Write("</" + "script>");

去实现了。

也许分清楚Client端与Server端的任务是这次历险的最大收获吧,我们下次再接着说。谢谢!(掌声起~~~开心~~晕倒~~~原来掌声是给那些扔臭鸡蛋的)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有