.NET环境下几种不同的邮件发送解决方案(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:VB.NET实现窗体图标最小化到状态栏
本文所使用的编程环境是Microsoft Visual Studio 2005,首先打开 Visual Studio。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗

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("发送成功")
  大家还可以参考:使用C# 创建邮件发送组件(SMTP)

4、IIS SMTP自带的基本的发信组件CDONTS

你不必专门下载,微软已经提供了这个组件,只要安装了2000,NT的SMTP就会有的。

优点:组件由操作系统自带

缺点:功能比较差,可扩展性不强

Mymail = CreateObject("CDONTS.NewMail")

Mymail.From = *** '信件发送者信箱

Mymail.To = *** ‘信件接收者信箱

Mymail.CC = *** '抄送

Mymail.BCC = *** ’密件发送

Mymail.Subject = *** ‘信件主题

Mymail.Body = *** ’信件正文

'设置优先级,0-不重要,1-一般,2-重要。

Mymail.Importance = 2

Mymail.Send()

Mymail = Nothing

5、使用JMail组件

Jmail具有以下特点:

(1)可以发送附件;

(2)详细日志能力,便于你查看问题所在;

(3)设置邮件发送的优先级;

(4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。

(5)密件发送/(CC)抄送/紧急信件发送能力;

(6)最关键的就是--免费的组件,不必发钱,所以非常值得使用。

网站:http://www.dimac.Net/,目前版本是4.3

JMail组件的常用属性:

Body 邮件正文

Logging 调用Log记录,供Debug用

Priority 邮件的优先程度,从1到5

Sender 发件人

ServerAddress SMTP服务器的IP地址或名称

Subject 邮件标题

JMail组件的常用方法:

AddAttachment 指定附件文件

AddRecipient 加入一个收件人

AddRecipientBCC 隐藏的副本抄送,只有发件人和BCC收件人知道。

AddRecipientCC 副本抄送

Execute 送出邮件

了解必要的属性及方法后,余下的部分接收使用者输入的Email,当成参数传给AddRecipient方法,然后根据需要填上其余属性,最后以Execute方法寄出。例如:

以下为引用的内容:
Dim JMail
  JMail = Server.CreateObject("JMail.SMTPMail")
  JMail.Logging = True
  JMail.ServerAddress = "202.96.144.48"
  JMail.Sender = "lihonggen0@163.com"
  JMail.Subject = "subject."
  JMail.Body = "body."
  JMail.AddRecipient("bbbb@163.com")
  JMail.AddAttachment("c:\go.gif")
  JMail.Priority = 3
  JMail.Execute()
  JMail = Nothing

总结:选择何种方案,视程序的用途和需求而定,本文例出的几种方案,供大家参考。例如用友软件U8,调用outlook组件,一样整合到自己的软件中。我编写的管理系统,自己写组件(SMTP),功能同样强大,不过Coding的时间就长了!

分享:AJAX使用技巧:如何处理书签和翻页按扭
本篇文章提供了一个开源JavaScript库,它提供了给AJAX应用程序中添加书签和会退按钮的功能。在学习完这个教程后,开发者将能够对开发AJAX应用碰到的问题获得一个解决方案,这个特性甚至Google M

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2008-08-22
相关.Net教程