转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
用ASP.Net发送MailList(二)         ★★★★

用ASP.Net发送MailList(二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:650 更新时间:2009/4/23 10:27:14

  前面我们讲过如何利用Asp.Net 来发送Mail,其实这篇文章的实际目的压根就不是为了让大家利用ASP.net来简单的发送一封Mail,那样是没有任何作用的,因为Asp.Net 已经提供了这样的强大的功能我们文章的标题就是MailList,所以我们的任务就是实现用Asp.Net发送一个MailList,前面的那位同志说了,我们不需要这么麻烦,只要作个循环即可,不错,这个的确是一个办法,而且豆腐以前也一直是这样在做的,但是这样作的缺点就是浪费了大量的流路资源,和 Mellissa又有什么本质的区别呢?其实在SMTP(Simple Mail Transfer Protcol)已经提供了制作SMTP 的方法,当我们Connect 以后,我们可以不断的向服务器发送RCPT 命令,这样就可以利用一个Connect向多个mail Addr 发送Mail 的Data 内容,在这里我们一定要注意到我们的Data 内容仅仅是发送一次的,这样就节省了大量的网路资源。

  <%@ Assembly Name="System.Net" %>

  <%@ Import Namespace="System.Net" %>

  <% @Import Namespace="System.Net.Sockets" %>

  <%@ Import Namespace="System.IO" %>

  <SCRIPT language=C# runat="server">

   protected void SendMailClick(Object Src, EventArgs E){

   String smtpserver=txtSmtpserver.Text; file://smtp服务器的IP地址

   TCPClient tcpc = new TCPClient();

   if (0 == tcpc.Connect(smtpserver, txtPort.Text.ToInt16()))

    {

     file://连接smtp 服务器成功

     Stream s;

     StreamReader sr ;

     String strCmd;

     Byte[] arrCmd;

     String strRet;

     String[] arrRet;

     sr = new StreamReader(tcpc.GetStream(), Encoding.Default);

     strRet=sr.ReadLine() + "
"; file://mail server 的欢迎语

     file://服务器连接成功以后,首先向服务器发送HeLo命令

     strCmd="HELO www.asp888.net";

     strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     file://然后向服务器发送信件的成员的信箱

     strCmd="mail from:"+ sender.Text;

     strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     file://向服务器发送收件人的信箱

     strCmd="rcpt to:" + receive2.Text;

     strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     file://邮件列表的发送工作,其实就是打开一次Socket连接,发送多个mail的结果

     strCmd="rcpt to:" + receive1.Text;

     strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     file://所有的准备工作都已经作好了,下面开始进行邮件的部分

     strCmd="data";

     strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     file://邮件内容

     strCmd="Date: 1234567\r\n";

     strCmd=strCmd+"From:" + sender.Text +"\r\n";

     strCmd=strCmd+"To:" + receive1.Text + ";" + receive2.Text +"\r\n";

     file://strCmd=strCmd+"To:" + receive1.Text + "\r\n";

     strCmd=strCmd+"Subject:" + subject.Text +"\r\n\r\n";

     strCmd=strCmd + content.Text +"\r\n\r\n";

     strRet=strRet + SenSmtpCmd1(tcpc,strCmd) + "<BR>";

     strCmd="\r\n.\r\n";

     strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     /*strCmd=strCmd+"From:xuexh@haitai.com.cm\r\n";

     strCmd=strCmd+"To:xuexh@haitai.com.cn\r\n";

    strCmd=strCmd+"subject:这是一个测试的邮件\r\n";

     strCmd=strCmd+"\r\n";

     strCmd=strCmd+"这些是测试邮件的邮件内容\r\n";

     strCmd=strCmd+"\r\n.\r\n";

     *///strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";

     file://最后 关闭与smtp 服务器的连接

     tcpc.Close();

     showmsg.Text=strRet;

    }

   else

    {

     showmsg.Text="对不起,连接服务器失败";

    }

   }

   String SenSmtpCmd(TCPClient tcpc,String strCmd){

    file://为了程序的简单可读,特意写了这个函数

    Byte[] arrCmd;

    String strRet;

    StreamReader sr;

    Stream s;

    s=tcpc.GetStream();

    strCmd = strCmd + "\r\n";

    arrCmd= Encoding.Default.GetBytes(strCmd.ToCharArray());

    s=tcpc.GetStream();

    s.Write(arrCmd, 0, strCmd.Length);

    sr = new StreamReader(tcpc.GetStream(), Encoding.Default);

    strRet=sr.ReadLine();

    return strRet;

   }

   String SenSmtpCmd1(TCPClient tcpc,String strCmd){

    file://为了程序的简单可读,特意写了这个函数

    Byte[] arrCmd;

    String strRet;

    StreamReader sr;

    Stream s;

    s=tcpc.GetStream();

    strCmd = strCmd;

    arrCmd= Encoding.Default.GetBytes(strCmd.ToCharArray());

    s=tcpc.GetStream();

    s.Write(arrCmd, 0, strCmd.Length);

    return "";

    }

  

   <FORM id=testForm runat="server">

  <?xml:namespace prefix = asp /><asp:label id=showmsg runat="server"></asp:label>

   SMTP服务器:<asp:TextBox id=txtSmtpserver runat="server"></asp:TextBox><asp:TextBox id=txtPort runat="server" Text="25"></asp:TextBox>

   发信人:<asp:TextBox id=sender runat="server"></asp:TextBox>

   收信人1:<asp:TextBox id=receive1 runat="server"></asp:TextBox>

   收信人2:<asp:TextBox id=receive2 runat="server"></asp:TextBox>

   信件主题:<asp:TextBox id=subject runat="server"></asp:TextBox>

   信件内容:<asp:TextBox id=content runat="server" TextMode="MultiLine" rows="10/">

   <asp:Button id=SendMail onclick=SendMailClick runat="server" Text="发送"></asp:Button>

   </FORM>

 
</asp:TextBox>


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台