asp.net利用telnet发SMTP邮件的问题
public bool Send(string strSmtpServer,int Port,string strSend,string strRecevie,string strSubject,string strContent)
{
string smtpserver = strSmtpServer;
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect(smtpserver, Port);
string strCmd;
strCmd = "helo";
SenSmtpCmd(tcpc, strCmd);
//然后向服务器发送信件的成员的信箱
strCmd = "mail from:" + strSend;
SenSmtpCmd(tcpc, strCmd);
//向服务器发送收件人的信箱
strCmd = "rcpt to: " + strRecevie;
SenSmtpCmd(tcpc, strCmd);
//所有的准备工作都已经作好了,下面开始进行邮件的部分
strCmd = "data";
SenSmtpCmd(tcpc, strCmd);
//邮件内容
strCmd = "Subject: " + strSubject + "\r\n\r\n";
strCmd = strCmd + strContent + "\r\n\r\n";
SenSmtpCmd(tcpc, strCmd);
strCmd = "\r\n.\r\n";
SenSmtpCmd(tcpc, strCmd);
//最后 关闭与smtp 服务器的连接
tcpc.Close();
return true;
}
catch(Exception ex)
{
return false;
}
}
private void SenSmtpCmd(TcpClient tcpc,string strCmd)
{
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;
}
//这个程序可以正确执行,并且自己配置的smtp服务器会收到邮件,但是如果去掉SenSmtpCmd方法的最后三行,程序没错,但是smtp服务器就不能收到邮件了,你说这是为什么呢?谢谢大家 --------------------编程问答-------------------- 没用过哦。呵呵。
我都用的jmail发送邮件, --------------------编程问答--------------------
补充:.NET技术 , ASP.NET