用Socket发邮件的代码(可以群发)

 qunFa.aspx文件的代码:

<% @ Page language="c#" Codebehind="qunFa.aspx.cs" AutoEventWireup="false" Inherits="liuwei.hanmail.qunFa"  %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
< HTML >
   < HEAD >
         < title > qunFa </ title >
< meta  content ="Microsoft Visual Studio .NET 7.1"  name =GENERATOR >
< meta  content =C#  name =CODE_LANGUAGE >
< meta  content =JavaScript  name =vs_defaultClientScript >
< meta  content =http://schemas.microsoft.com/intellisense/ie5  name =vs_targetSchema >
   </ HEAD >
< body  MS_POSITIONING ="GridLayout" >
< form  id =Form1  method =post  runat ="server" >
             < asp:ListBox  id ="ListBoxMsg"  style ="Z-INDEX: 118; LEFT: 136px; POSITION: absolute; TOP: 344px"
                runat ="server"  Width ="440px"  Height ="184px" ></ asp:ListBox >
             < asp:Label  id ="Label11"  style ="Z-INDEX: 108; LEFT: 120px; POSITION: absolute; TOP: 320px"  runat ="server" > 信息查看 </ asp:Label >
             < asp:Label  id ="Label10"  style ="Z-INDEX: 117; LEFT: 112px; POSITION: absolute; TOP: 16px"  runat ="server" > SMTP服务器地址 </ asp:Label >
             < asp:Label  id ="Label9"  style ="Z-INDEX: 100; LEFT: 128px; POSITION: absolute; TOP: 48px"  runat ="server" > 用户名 </ asp:Label >
             < asp:TextBox  id ="TextBoxSrv"  style ="Z-INDEX: 101; LEFT: 264px; POSITION: absolute; TOP: 24px"
                runat ="server"  Width ="240px" ></ asp:TextBox >
             < asp:Label  id ="Label8"  style ="Z-INDEX: 102; LEFT: 360px; POSITION: absolute; TOP: 48px"  runat ="server" > 口令 </ asp:Label >
             < asp:TextBox  id ="TextBoxUser"  style ="Z-INDEX: 103; LEFT: 192px; POSITION: absolute; TOP: 48px"
                runat ="server"  Width ="152px" ></ asp:TextBox >
             < asp:TextBox  id ="TextBoxPwd"  style ="Z-INDEX: 104; LEFT: 416px; POSITION: absolute; TOP: 48px"
                runat ="server"  Width ="168px"  TextMode ="Password" ></ asp:TextBox >
             < asp:Label  id ="Label4"  style ="Z-INDEX: 105; LEFT: 128px; POSITION: absolute; TOP: 80px"  runat ="server" > 发信人 </ asp:Label >
             < asp:Label  id ="Label5"  style ="Z-INDEX: 106; LEFT: 360px; POSITION: absolute; TOP: 80px"  runat ="server" > 收信人 </ asp:Label >
             < asp:TextBox  id ="TextBoxSend"  style ="Z-INDEX: 107; LEFT: 192px; POSITION: absolute; TOP: 80px"
                runat ="server" ></ asp:TextBox >
             < asp:TextBox  id ="TextBoxRev"  style ="Z-INDEX: 109; LEFT: 416px; POSITION: absolute; TOP: 80px"
                runat ="server"  Width ="168px" ></ asp:TextBox >
             < asp:Label  id ="Label6"  style ="Z-INDEX: 110; LEFT: 128px; POSITION: absolute; TOP: 112px"  runat ="server" > 主题 </ asp:Label >
             < asp:TextBox  id ="TextBoxSubject"  style ="Z-INDEX: 112; LEFT: 192px; POSITION: absolute; TOP: 104px"
                runat ="server"  Width ="392px" ></ asp:TextBox >
             < asp:TextBox  id ="TextBoxMailText"  style ="Z-INDEX: 113; LEFT: 144px; POSITION: absolute; TOP: 160px"
                runat ="server"  Width ="440px"  TextMode ="MultiLine"  Height ="120px" ></ asp:TextBox >
             < asp:Label  id ="Label7"  style ="Z-INDEX: 114; LEFT: 128px; POSITION: absolute; TOP: 136px"  runat ="server" > 邮件内容 </ asp:Label >
             < asp:Button  id ="ButtonSend"  style ="Z-INDEX: 115; LEFT: 464px; POSITION: absolute; TOP: 296px"
                runat ="server"  Text ="发送" ></ asp:Button >
             < asp:Label  id ="LabelErr"  style ="Z-INDEX: 116; LEFT: 696px; POSITION: absolute; TOP: 136px"
                runat ="server" ></ asp:Label ></ FORM >
     </ body >
</ HTML >

 

qunFa.aspx.cs的代码:

 

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;
using  System.IO;
using  System.Net;
using  System.Net.Sockets;

namespace  Sendmail
{
    /// <summary>
    /// qunFa 的摘要说明。
    /// </summary>

    public class qunFa : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label LabelErr;
        protected System.Web.UI.WebControls.Button ButtonSend;
        protected System.Web.UI.WebControls.Label Label7;
        protected System.Web.UI.WebControls.TextBox TextBoxMailText;
        protected System.Web.UI.WebControls.TextBox TextBoxSubject;
        protected System.Web.UI.WebControls.Label Label6;
        protected System.Web.UI.WebControls.TextBox TextBoxRev;
        protected System.Web.UI.WebControls.TextBox TextBoxSend;
        protected System.Web.UI.WebControls.Label Label5;
        protected System.Web.UI.WebControls.Label Label4;
        protected System.Web.UI.WebControls.TextBox TextBoxPwd;
        protected System.Web.UI.WebControls.TextBox TextBoxUser;
        protected System.Web.UI.WebControls.Label Label8;
        protected System.Web.UI.WebControls.TextBox TextBoxSrv;
        protected System.Web.UI.WebControls.Label Label9;
        protected System.Web.UI.WebControls.Label Label11;
        protected System.Web.UI.WebControls.ListBox ListBoxMsg;
        protected System.Web.UI.WebControls.Label Label10;

        TcpClient smtpSrv;
        NetworkStream netStrm;
        string CRLF=" ";
    
        private void Page_Load(object sender, System.EventArgs e)
        {
        }


        #region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }

        
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>

        private void InitializeComponent()
        {    
            this.ButtonSend.Click += new System.EventHandler(this.ButtonSend_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }

        #endregion



        private void ButtonSend_Click(object sender, System.EventArgs e)
        {
            this.ListBoxMsg.Items.Clear();
            string[] userList=this.TextBoxRev.Text.Split(',');
            for(int i=0;i<userList.Length;i++)
                Qun(userList[i]);
            

        }


        public void Qun(string userList)
        {
            try
            {
                string data;
                smtpSrv=new TcpClient(this.TextBoxSrv.Text,25);                
                netStrm=smtpSrv.GetStream();
                StreamReader rdStrm=new StreamReader(smtpSrv.GetStream());
                this.WriteStream("EHLO Local");
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                this.WriteStream("AUTH LOGIN");
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                data=this.TextBoxUser.Text;
                data=AuthStream(data);
                this.WriteStream(data);
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                data=this.TextBoxPwd.Text;
                data=AuthStream(data);
                this.WriteStream(data);
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                data="MAIL FROM:<"+this.TextBoxSend.Text+">";
                this.WriteStream(data);
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                data="RCPT TO:<"+userList+">";
                this.WriteStream(data);
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                this.WriteStream("DATA");
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                data="Date:"+DateTime.Now;
                this.WriteStream(data);
                data="From:"+this.TextBoxSend.Text;
                this.WriteStream(data);            
                data="TO:"+userList;
                this.WriteStream(data);
                data="SUBJECT:"+this.TextBoxSubject.Text;
                this.WriteStream(data);
                data="Reply-TO:"+this.TextBoxSend.Text;
                this.WriteStream(data);
                this.WriteStream("");
                this.WriteStream(this.TextBoxMailText.Text);
                this.WriteStream(".");
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                this.WriteStream("QUIT");
                this.ListBoxMsg.Items.Add(rdStrm.ReadLine());
                netStrm.Close();
                rdStrm.Close();
                this.LabelErr.Text="发送成功!";
            }

            catch(Exception ex)
            {
                this.LabelErr.Text=ex.ToString();
            }

        }

        private void WriteStream(string strCmd)
        {
            strCmd+=CRLF;
            byte[] bw=System.Text.Encoding.Default.GetBytes(strCmd);
            netStrm.Write(bw,0,bw.Length);
        }


        private string AuthStream(string strCmd)
        {
            try
            {
                byte[] by=System.Text.Encoding.Default.GetBytes(strCmd);
                strCmd=Convert.ToBase64String(by);
            }

            catch(Exception err)
            {
                return err.ToString();
            }

            return strCmd;
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值