用Socket发邮件的代码(可以群发)
生活随笔
收集整理的這篇文章主要介紹了
用Socket发邮件的代码(可以群发)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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服務(wù)器地址</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">發(fā)信人</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">郵件內(nèi)容</asp:Label>
????????????<asp:Button?id="ButtonSend"?style="Z-INDEX:?115;?LEFT:?464px;?POSITION:?absolute;?TOP:?296px"
????????????????runat="server"?Text="發(fā)送"></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)
????????...{
????????}
????????Web?窗體設(shè)計(jì)器生成的代碼#region?Web?窗體設(shè)計(jì)器生成的代碼
????????override?protected?void?OnInit(EventArgs?e)
????????...{
????????????//
????????????//?CODEGEN:?該調(diào)用是?ASP.NET?Web?窗體設(shè)計(jì)器所必需的。
????????????//
????????????InitializeComponent();
????????????base.OnInit(e);
????????}
????????
????????/**////?<summary>
????????///?設(shè)計(jì)器支持所需的方法?-?不要使用代碼編輯器修改
????????///?此方法的內(nèi)容。
????????///?</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="發(fā)送成功!";
????????????}
????????????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;
????????}
????}
}
?
注:多個(gè)收件人之間用逗號(hào)隔開??
總結(jié)
以上是生活随笔為你收集整理的用Socket发邮件的代码(可以群发)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#与RSS亲密接触
- 下一篇: asp.net 2.0防止同一用户同时登