上一篇:用ASP.Net发送MailList(2) >>
用ASP.Net发送MailList(3)
<%@ Assembly Name="System.Net" %>
<%@ Import Namespace="System.Net" %>
<% @Import Namespace="System.Net.Sockets" %>
<%@ Import Namespace="System.IO" %>
<SCRIPT language=C# runat="server">
protected void SendMailClick(Object Src, EventArgs E){
String smtpserver=txtSmtpserver.Text; file://smtp服务器的IP地址
TCPClient tcpc = new TCPClient();
if (0 == tcpc.Connect(smtpserver, txtPort.Text.ToInt16()))
{
file://连接smtp 服务器成功
Stream s;
StreamReader sr ;
String strCmd;
Byte[] arrCmd;
String strRet;
String[] arrRet;
sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
strRet=sr.ReadLine() + "
"; file://mail server 的欢迎语
file://服务器连接成功以后,首先向服务器发送HeLo命令
strCmd="HELO www.asp888.net";
strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
file://然后向服务器发送信件的成员的信箱
strCmd="mail from:"+ sender.Text;
strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
file://向服务器发送收件人的信箱
strCmd="rcpt to:" + receive2.Text;
strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
file://邮件列表的发送工作,其实就是打开一次Socket连接,发送多个mail的结果
strCmd="rcpt to:" + receive1.Text;
strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
file://所有的准备工作都已经作好了,下面开始进行邮件的部分
strCmd="data";
strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
file://邮件内容
strCmd="Date: 1234567\r\n";
strCmd=strCmd+"From:" + sender.Text +"\r\n";
strCmd=strCmd+"To:" + receive1.Text + ";" + receive2.Text +"\r\n";
file://strCmd=strCmd+"To:" + receive1.Text + "\r\n";
strCmd=strCmd+"Subject:" + subject.Text +"\r\n\r\n";
strCmd=strCmd + content.Text +"\r\n\r\n";
strRet=strRet + SenSmtpCmd1(tcpc,strCmd) + "<BR>";
strCmd="\r\n.\r\n";
strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
/*strCmd=strCmd+"From:xuexh@haitai.com.cm\r\n";
strCmd=strCmd+"To:xuexh@haitai.com.cn\r\n";
strCmd=strCmd+"subject:这是一个测试的邮件\r\n";
strCmd=strCmd+"\r\n";
strCmd=strCmd+"这些是测试邮件的邮件内容\r\n";
strCmd=strCmd+"\r\n.\r\n";
*///strRet=strRet + SenSmtpCmd(tcpc,strCmd) + "<BR>";
file://最后 关闭与smtp 服务器的连接
tcpc.Close();
showmsg.Text=strRet;
}
else
{
showmsg.Text="对不起,连接服务器失败";
}
}
String SenSmtpCmd(TCPClient tcpc,String strCmd){
file://为了程序的简单可读,特意写了这个函数
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 strRet;
}
String SenSmtpCmd1(TCPClient tcpc,String strCmd){
file://为了程序的简单可读,特意写了这个函数
Byte[] arrCmd;
String strRet;
StreamReader sr;
Stream s;
s=tcpc.GetStream();
strCmd = strCmd;
arrCmd= Encoding.Default.GetBytes(strCmd.ToCharArray());
s=tcpc.GetStream();
s.Write(arrCmd, 0, strCmd.Length);
return "";
}
<FORM id=testForm runat="server">
<?XML:namespace prefix = asp /><asp:label id=showmsg runat="server"></asp:label>
SMTP服务器:<asp:TextBox id=txtSmtpserver runat="server"></asp:TextBox><asp:TextBox id=txtPort runat="server" Text="25"></asp:TextBox>
发信人:<asp:TextBox id=sender runat="server"></asp:TextBox>
收信人1:<asp:TextBox id=receive1 runat="server"></asp:TextBox>
收信人2:<asp:TextBox id=receive2 runat="server"></asp:TextBox>
信件主题:<asp:TextBox id=subject runat="server"></asp:TextBox>
信件内容:<asp:TextBox id=content runat="server" TextMode="MultiLine" rows="10/">
<asp:Button id=SendMail onclick=SendMailClick runat="server" Text="发送"></asp:Button>
</FORM>
</asp:TextBox>
下一篇:剖析ASP.NET下部构造(1) >>
相关文章:
- · 学以致用 驳“ASP低能论”
- · ASP中遍历和操作Application对象的集合(1)
- · ASP中遍历和操作Application对象的集合(2)
- · ASP设计动态页中服务器端的处理
- · 解析ASP的Application和Session对象
- · ASP应用程序设计的Web状态管理分析(1)
- · ASP应用程序设计的Web状态管理分析(2)
- · 在ASP中访问和更新Cookies集合(1)
- · 在ASP中访问和更新Cookies集合(2)
- · ASP中使用ServerVariables集合详解(1)
- · ASP中使用ServerVariables集合详解(2)
- · ASP中使用ServerVariables集合详解(3)
- · ASP中使用ServerVariables集合详解(4)
- · ASP中使用Form和QueryString集合(1)
- · ASP中使用Form和QueryString集合(2)
- · ASP中使用Form和QueryString集合(3)
- · ASP中使用Form和QueryString集合(4)
- · ASP内置对象Request和Response详解(1)
- · ASP内置对象Request和Response详解(2)
- · ASP内置对象Request和Response详解(3)
- · 20种看ASP程序源码的方法及工具
- · 防范ASP木马的十大基本原则
- · Web服务器上防范基于ASP程序的木马(2)
- · 利用ASP木马程序获取管理权限(1)
- · IIS服务器排错指南及错误代码大全
- · IIS服务器排错指南及错误代码大全(2)
- · IIS服务器排错指南及错误代码大全(3)
- · 用ISAPIfilter使INC、ASA文件安全
- · IIS HTTP500内部错误解决办法(2)
- · IIS HTTP500内部错误解决办法(3)
- · ASP实用技巧:强制刷新和判断文件地址
- · ASP木马Webshell安全解决办案
- · 由神秘到简单 教你在网页中添加微软地图(1)
- · 由神秘到简单 教你在网页中添加微软地图(2)
- · 在Apache上调试ASP.NET 1.1/2.0代码
- · ASP.NET入门随想之多态、接口与委托(1)
- · ASP.NET入门随想之多态、接口与委托(2)
- · ASP.NET 2.0运行时简要分析(1)
