.NET环境下几种不同的邮件发送解决方案(2)_.Net教程
推荐: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
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-.NET环境下几种不同的邮件发送解决方案(2)。