网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VB.net > 正文
.NET环境下几种不同的邮件发送解决方案
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
C#开发Windows 应用程序中使用System.Net.Sockets

  也是基于SMTP协议

  一、SMTP协议简介

  1、 客户端通过服务器的25端口建立TCP/IP连接

  服务器端: 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) 
  lstlo
  • 上一篇资讯: 用.net动态创建类的实例
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号