zoukankan      html  css  js  c++  java
  • 不使用system.web.mail来发送邮件

    Based on RFC 821 about Simple Mail Transfer Protocol, it's very easy to send mail via SMTP. Here's the handshaking for sending mail:
     
     Receiver: 220 server.com Simple Mail Transfer Service Ready
     Sender  : HELO server.com
     Receiver: 250 server.com
     Sender  : MAIL FROM: <agusk@host.com>
     Receiver: 250 OK
     Sender  : RCPT TO: <myhoney@host.com>
     Receiver: 250 OK
     Sender  : DATA
     Receiver: 354 Start mail input: end with <CRLF>.<CRLF>
     Sender  : all data like From, To, Subject, Body etc.
               ended with <CRLF>.<CRLF>
     Receiver: 250 OK
     Sender  : QUIT
     Receiver: 250 server.com closing transmission channel



    private void SendBtn_Click(object sender, System.EventArgs e)
    {
        // change cursor into wait cursor
        Cursor cr = Cursor.Current;
        Cursor.Current = Cursors.WaitCursor;

        // create server SMTP with port 25
        TcpClient SmtpServ = new TcpClient(ServSMTP.Text,25);
        string Data;
        byte[] szData;
        string CRLF = "\r\n";
        LogList.Items.Clear();            

        try
        {
            // initialization
            NetworkStream NetStrm = SmtpServ.GetStream();
            StreamReader  RdStrm= new StreamReader(SmtpServ.GetStream());
            LogList.Items.Add(RdStrm.ReadLine());

            
            // say hello to server and send response into log report
            Data = "HELLO server " + CRLF;                
            szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
            NetStrm.Write(szData,0,szData.Length);
            LogList.Items.Add(RdStrm.ReadLine());

            // send sender data
            Data = "MAIL FROM: " + "
    <" + sFrom.Text + ">" + CRLF;
            szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
            NetStrm.Write(szData,0,szData.Length);
            LogList.Items.Add(RdStrm.ReadLine());

            // send receiver data
            Data = "RCPT TO: " + "
    <" + sTo.Text + ">" + CRLF;
            szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
            NetStrm.Write(szData,0,szData.Length);
            LogList.Items.Add(RdStrm.ReadLine());

            // send DATA
            Data = "DATA " + CRLF;
            szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
            NetStrm.Write(szData,0,szData.Length);
            LogList.Items.Add(RdStrm.ReadLine());                

            // send content data
            Data = "SUBJECT: " + sSubject.Text + CRLF + sMessage.Text + CRLF + "." + CRLF;
            szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
            NetStrm.Write(szData,0,szData.Length);
            LogList.Items.Add(RdStrm.ReadLine());                

            // quit from server SMTP
            Data = "QUIT " + CRLF;
            szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
            NetStrm.Write(szData,0,szData.Length);
            LogList.Items.Add(RdStrm.ReadLine());                

            // close connection
            NetStrm.Close();
            RdStrm.Close();
            LogList.Items.Add("Close connection");
            LogList.Items.Add("Send mail successly..");

            // back to normal cursor
            Cursor.Current = cr;

        }
        catch(InvalidOperationException err)
        {
            LogList.Items.Add("Error: "+ err.ToString());
        }


    }
  • 相关阅读:
    05---二叉树---20195106023---王亚威.c
    05---二叉树---20195106043---方传祥.c
    05---二叉树---20195106006---陈辉.c
    05---二叉树---20195106064---陈昕.c
    05---二叉树---20195106100---李遂勋.c
    2020下---3D建模---作业---blender
    nothing provides python(abi) = 3.8 needed by VirtualBox-6.1-6.1.16_140961_fedora32-1.x86_64
    el-table、pl-table(u-table)、ux-grid解决表格问题的实例(大数据量)
    1800*1【Codeforces Round #665 (Div. 2) D】Maximum Distributed Tree
    【Educational Codeforces Round 97 (Rated for Div. 2) C】Chef Monocarp
  • 原文地址:https://www.cnblogs.com/sunbingzibo/p/1095054.html
Copyright © 2011-2022 走看看