首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> .NET Framework >> 正文

.NET环境下五种邮件发送解决方案

  服务器端: 220 server.com Simple Mail Transfer Service Ready

  2、 客户端使用“HELO”命令标识发件人

  客户端:HELO server.com

  服务器端:250 server.com

  3、 客户端发送MAIL命令,服务器端以OK作为响应表明准备接收

  客户端: MAIL FROM: 〈A@B.com

  服务器端: 250 OK

  4、 客户端发送RCPT命令标识收件人,服务器端回应是否愿意为收件人接受邮件

  客户端:RCPT TO: 〈c@d.com

  服务器端:250 OK

  5、 协商结束后用命令DATA发送发送邮件

  客户端:DATA

  服务器端:354 Start mail input: end with 〈CRLF〉。〈CRLF〉

  6、 客户端以。表示结束输入内容一起发送出去

  客户端:Subject: 〈CRLF〉

  内容〈CRLF〉

  。〈CRLF〉

  7、客户端用QUIT命令退出。

  客户端:QUIT

  服务器端:250 server.com closing transmission channel

  优点:可以在此基础上开发出自己的组件,利用Sockets我们可以进行网络编程开发

  缺点:程序量相对较多,

  发送邮件的代码如下:

以下是引用片段:
Dim sendData As String 
  Dim szData As Byte() 
  Dim CRLF As String 
  CRLF = "\r\n" 
  '创建与服务器25端口的连接 
  Dim SmtpServ As New TcpClient(txtsmtp.Text, 25) 
  lstlog.Items.Clear() 
  '显示服务器初始信息 
  Dim.NetStrm As.NetworkStream 
  .NetStrm = SmtpServ.GetStream() 
  Dim RdStrm As New StreamReader(SmtpServ.GetStream()) 
  If RdStrm.ReadLine() 〈〉 "" Then lstlog.Items.Add(RdStrm.ReadLine()) 
  ' 
  sendData = "HELO server " + CRLF 
  szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 
  .NetStrm.Write(szData, 0, szData.Length) 
  lstlog.Items.Add(RdStrm.ReadLine()) 
  '标志发件人 
  sendData = "MAIL FROM: " + "〈" + txtfrom.Text + "〉" + CRLF 
  szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 
  .NetStrm.Write(szData, 0, szData.Length) 
  lstlog.Items.Add(RdStrm.ReadLine()) 
  '标志收件人 
  sendData = "RCPT TO: " + "〈" + txtTo.Text + "〉" + CRLF 
  szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 
  .NetStrm.Write(szData, 0, szData.Length) 
  lstlog.Items.Add(RdStrm.ReadLine()) 
  '准备发送内容 
  sendData = "DATA " + CRLF 
  szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 
  .NetStrm.Write(szData, 0, szData.Length) 
  lstlog.Items.Add(RdStrm.ReadLine()) 
  '发送主题 
  sendData = "SUBJECT: " + txtsub.Text + CRLF 
  '发送内容 
  sendData = sendData + txtmsg.Text + CRLF 
  '结束发送 
  sendData = sendData + "." + CRLF 
  szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 
  .NetStrm.Write(szData, 0, szData.Length) 
  lstlog.Items.Add(RdStrm.ReadLine()) 
  '退出 
  sendData = "QUIT " + CRLF 
  szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 
  .NetStrm.Write(szData, 0, szData.Length) 
  lstlog.Items.Add(RdStrm.ReadLine()) 
  '关闭连接 
  .NetStrm.Close() 
  RdStrm.Close() 
  lstlog.Items.Add("连接关闭") 
  lstlog.Items.Add("发送成功") 

上一页  [1] [2] [3] 下一页

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 社区讨论
 博客论点
 Dotnet频道相关导航