• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    创建基于ASP.NET的SMTP邮件服务的具体方法

    首先,我们创建一个继承命名空间System.Net.Sockets的TcpClient类的类。TcpClient类提供简单的方法用于连接,发送,接收网络的数据流。GetStream方法用于创建一个网络流(NetworkStream)。读和写网络流(NetworkStream)的方法用于发送数据给远程主机和从远程主机接收网络流。

    复制代码 代码如下:

    public class ClientConnection : TcpClient
    {
    private NetworkStream _NetworkStream = null;
    private StreamReader _StreamReader = null;
    private StreamWriter _StreamWriter = null;
    public void Initialise()
    {
    _NetworkStream = this.GetStream();
    _StreamReader = new StreamReader(_NetworkStream,
    System.Text.Encoding.Default, false, this.ReceiveBufferSize);
    _StreamWriter = new StreamWriter(_NetworkStream,
    System.Text.Encoding.Default, this.SendBufferSize);
    }
    public void Send(string s)
    {
    _StreamWriter.WriteLine(s);
    _StreamWriter.Flush();
    }
    public string Read()
    {
    return _StreamReader.ReadLine();
    }

    接下来,我们创建发送邮件出去的类,这个类有几个属性去设置关于被发送的邮件的一些信息。

    复制代码 代码如下:

    public string MailServer = "127.0.0.1" ;
    public string From = "" ;
    public string To = "" ;
    public string Body = "" ;
    public string Subject = "" ; 

    和一个发送邮件的方法。这个方法将会用服务器名和它的端口去创建一个连接。指令可以被发送到远程主机。

    复制代码 代码如下:

    public void Send()
    {
    tcp = new ClientConnection();
    tcp.Connect(MailServer,25);
    tcp.Initialise();
    SendCommandToServer("HELO " + System.Net.Dns.GetHostName());
    SendCommandToServer("MAIL FROM: " + From + "\r\n");
    SendCommandToServer("RCPT TO: " + To + "\r\n");
    string StrHeaders = "";
    StrHeaders += "From: " + From + "\r\n";
    StrHeaders += "To: " + To + "\r\n";
    StrHeaders += "Subject: " + Subject + "\r\n";
    StrHeaders += "Content-type: text/plain; charset=\"ISO-8859-1\"" + "\r\n";
    SendCommandToServer("DATA\r\n" + StrHeaders);
    SendCommandToServer(Body + "\r\n.\r\n");
    SendCommandToServer("QUIT\r\n");
    }

    还有一个私有的送一个指令到本地服务器的方法。

    复制代码 代码如下:

    private void SendCommandToServer(string cmd)
    {
    tcp.Send(cmd);
    Response=tcp.Read();
    System.Web.HttpContext.Current.Trace.Warn("Response",Response);
    }

    现在,这个类基本完成了。开发者还可以建立错误回执和释放资源(用TcpClient类中的Close()方法)。同样,这几个属性可以被扩展到在邮件中包含更多的信息。

      最后,我们可以在aspx文件中写一些发送邮件的代码。在这个例子中,"localhost"是邮件服务器。你可以根据情况改变这个,或者可以看我的关于如何设置你的发送邮件的本地服务器的文章。

    复制代码 代码如下:

    %@ Import Namespace="MyComponents" %>
    script runat="server">
    protected void Page_Load(Object Src, EventArgs E)
    {
    if (IsPostBack)
    {
    Mail Mailer=new Mail();
    Mailer.From=From.Text;
    Mailer.To=To.Text;
    Mailer.Subject=Subject.Text;
    Mailer.Body=Body.Text;
    Mailer.MailServer="localhost";
    Mailer.Send();
    }
    }
    /script>

    下面是完整的代码。

    复制代码 代码如下:

    using System.IO;
    using System.Net.Sockets;
    namespace MyComponents
    {
    public class ClientConnection : TcpClient
    {
    private NetworkStream _NetworkStream = null;
    private StreamReader _StreamReader = null;
    private StreamWriter _StreamWriter = null;
    public void Initialise()
    {
    _NetworkStream = this.GetStream();
    _StreamReader = new StreamReader(_NetworkStream,
    System.Text.Encoding.Default, false, this.ReceiveBufferSize);
    _StreamWriter = new StreamWriter(_NetworkStream,
    System.Text.Encoding.Default, this.SendBufferSize);
    }
    public void Send(string s)
    {
    _StreamWriter.WriteLine(s);
    _StreamWriter.Flush();
    }
    public string Read()
    {
    return _StreamReader.ReadLine();
    }
    }
    public class Mail
    {
    public string MailServer = "127.0.0.1" ;
    public string From = "" ;
    public string To = "" ;
    public string Body = "" ;
    public string Subject = "" ;
    private ClientConnection tcp=null;
    private string Response="";
    public void Send()
    {
    tcp = new ClientConnection();
    tcp.Connect(MailServer,25);
    tcp.Initialise();
    SendCommandToServer("HELO " + System.Net.Dns.GetHostName());
    SendCommandToServer("MAIL FROM: " + From + "\r\n");
    SendCommandToServer("RCPT TO: " + To + "\r\n");
    string StrHeaders = "";
    StrHeaders += "From: " + From + "\r\n";
    StrHeaders += "To: " + To + "\r\n";
    StrHeaders += "Subject: " + Subject + "\r\n";
    StrHeaders += "Content-type: text/plain; charset=\"ISO-8859-1\"" + "\r\n";
    SendCommandToServer("DATA\r\n" + StrHeaders);
    SendCommandToServer(Body + "\r\n.\r\n");
    SendCommandToServer("QUIT\r\n");
    }
    private void SendCommandToServer(string cmd)
    {
    tcp.Send(cmd);
    Response=tcp.Read();
    System.Web.HttpContext.Current.Trace.Warn("Response",Response);
    }
    }

    您可能感兴趣的文章:
    • Asp.net发送邮件的两种方法小结
    • 在asp.NET 中使用SMTP发送邮件的实现代码
    • asp.net2.0实现邮件发送(测试成功)
    • 在ASP.NET2.0中通过Gmail发送邮件的代码
    • Asp.Net类库中发送电子邮件的代码
    • 用ASP.NET做的个性化的邮件发送系统
    • asp.net mvc发送邮件实例讲解
    • ASP.NET MVC 5之邮件服务器与客户端
    • ASP.NET Core 1.0实现邮件发送功能
    • asp.net基于windows服务实现定时发送邮件的方法
    • ASP.NET邮件发送system.Net.Mail案例
    • asp.net实现的群发邮件功能详解
    上一篇:ASP.NET DropDownListCheckBox使用示例(解决回发问题)
    下一篇:在ASP.NET中插入flash代码实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    创建基于ASP.NET的SMTP邮件服务的具体方法 创建,基于,ASP.NET,的,SMTP,