欢迎光临
我们一直在努力

用ASP.Net发送MailList(二)-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

前面我们讲过如何利用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>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用ASP.Net发送MailList(二)-.NET教程,Asp.Net开发
分享到: 更多 (0)