当前位置:编程学习 > C#/ASP.NET >>

asp.net利用telnet发SMTP邮件的问题

public bool Send(string strSmtpServer,int Port,string strSend,string strRecevie
        ,string strSubject,string strContent)
    {
        string smtpserver = strSmtpServer;
        TcpClient tcpc = new TcpClient();
        try
        {
            tcpc.Connect(smtpserver, Port);
            string strCmd;
            strCmd = "helo";
            SenSmtpCmd(tcpc, strCmd);
            //然后向服务器发送信件的成员的信箱
            strCmd = "mail from:" + strSend;
            SenSmtpCmd(tcpc, strCmd);
            //向服务器发送收件人的信箱
            strCmd = "rcpt to: " + strRecevie;
            SenSmtpCmd(tcpc, strCmd);
            //所有的准备工作都已经作好了,下面开始进行邮件的部分
            strCmd = "data";
            SenSmtpCmd(tcpc, strCmd);
            //邮件内容
            strCmd = "Subject: " + strSubject + "\r\n\r\n";
            strCmd = strCmd + strContent + "\r\n\r\n";
            SenSmtpCmd(tcpc, strCmd);
            strCmd = "\r\n.\r\n";
            SenSmtpCmd(tcpc, strCmd);
            //最后 关闭与smtp 服务器的连接
            tcpc.Close();
            return true;
        }
        catch(Exception ex)
        {
            return false;
        }

    }
    private void SenSmtpCmd(TcpClient tcpc,string strCmd)
    {
        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;
      }

//这个程序可以正确执行,并且自己配置的smtp服务器会收到邮件,但是如果去掉SenSmtpCmd方法的最后三行,程序没错,但是smtp服务器就不能收到邮件了,你说这是为什么呢?谢谢大家 --------------------编程问答-------------------- 没用过哦。呵呵。

我都用的jmail发送邮件, --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,