知识大全 .NET环境下五种邮件发送解决方案
Posted 知
篇首语:有了知识不运用,等于耕耘播种。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET环境下五种邮件发送解决方案相关的知识,希望对你有一定的参考价值。
.NET环境下五种邮件发送解决方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用outLook提供的发送
如 我见过的用友软件U 生产制造(演示版) 其中的邮件功能就是通过调用outLook的ActiveX 组件
优点 开发简单
缺点 依赖outlook组件 SMTP 邮件服务
邮件发送的代码如下
以下是引用片段 Private Sub Send() Dim outObj As New Outlook Application() Dim Item As Outlook MailItemClass Item = outObj CreateItem( ) Item To = Item Subject = hello Item Body = hell Item Attachments Add( C:\\abc txt ) Item Send() End Sub
WEB开发 在ASP Net中引用System Web Mail类
System Web Mail 命名空间包含使您可以使用 CDOSYS(Windows 的协作数据对象)消息组件来构造和发送消息的类 邮件消息是通过内置在 Microsoft Windows 中的 SMTP 邮件服务或任意的 SMTP 服务器来传送的 此命名空间中的类可以在 ASP Net 或任何托管应用程序
MailAttachment提供用于构造电子邮件附件的属性和方法
MailMessage提供用于构造电子邮件的属性和方法
SmtpMail提供用于使用 Windows 的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法
邮件可以通过 Microsoft Windows 中内置的 SMTP 邮件服务或任意 SMTP 服务器来传送 System Web Mail 命名空间中的类型可以在 ASP Net 或任何托管应用程序使用
Smtp服务器的设置 现在一些免费邮件提供商是不再提供针对所有邮件提供Smtp服务 在发送邮件的时候 需要验证用户信息 考虑Smtp用户验证问题
如果Smtp服务器在本地计算机 发送速度很快的 基本上不用担心 如果不是本地服务器 那么发送的时候最好不要以此太多 一是速度问题 二是以此发送太多邮件 Smtp服务器可能认为是垃圾邮件而拒绝服务
代码如下
以下是引用片段 Private Sub Button _Click(ByVal sender As System Object ByVal e As System EventArgs) Handles Button Click Dim mailObj As New MailMessage() Dim smtp As SmtpMail 定义SMTP服务器的名称 smtp SmtpServer = 定义邮件的发送地址 mailObj From = 定义邮件的接收地址 mailObj To = 定义邮件的暗送地址 mailObj Bcc= 定义邮件的抄送地址 mailObj Cc = 定义邮件的主题 mailObj Subject = 主题 定义邮件的主体 mailObj Body = 邮件主体! 邮件以 HTML的格式发送 mailObj BodyFormat = MailFormat Html 定义邮件的有限级 在此设定为高 mailObj Priority = MailPriority High 给发送的邮件附加上一个附件 mailObj Attachments Add(New MailAttachment( c:\\aa doc )) smTp Send(mailObj) End Sub
在VB Net或C#开发Windows 应用程序中使用System Net Sockets
也是基于SMTP协议
一 SMTP协议简介
客户端通过服务器的 端口建立TCP/IP连接
服务器端 Simple Mail Transfer Service Ready
客户端使用 HELO 命令标识发件人
客户端 HELO
服务器端
客户端发送MAIL命令 服务器端以OK作为响应表明准备接收
客户端 MAIL FROM 〈〉
服务器端 OK
客户端发送RCPT命令标识收件人 服务器端回应是否愿意为收件人接受邮件
客户端 RCPT TO 〈〉
服务器端 OK
协商结束后用命令DATA发送发送邮件
客户端 DATA
服务器端 Start mail input end with 〈CRLF〉 〈CRLF〉
客户端以 表示结束输入内容一起发送出去
客户端 Subject 〈CRLF〉
内容〈CRLF〉
〈CRLF〉
客户端用QUIT命令退出
客户端 QUIT
服务器端 closing transmission channel
优点 可以在此基础上开发出自己的组件 利用Sockets我们可以进行网络编程开发
缺点 程序量相对较多
发送邮件的代码如下
以下是引用片段 Dim sendData As String Dim szData As Byte() Dim CRLF As String CRLF = \\r\\n 创建与服务器 端口的连接 Dim SmtpServ As New TcpClient(txtsmtp Text ) lstlog Items Clear() 显示服务器初始信息 Dim NetStrm As NeorkStream 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 szData Length) lstlog Items Add(RdStrm ReadLine()) 标志发件人 sendData = MAIL FROM: + 〈 + txtfrom Text + 〉 + CRLF szData = System Text Encoding ASCII GetBytes(sendData ToCharArray()) NetStrm Write(szData szData Length) lstlog Items Add(RdStrm ReadLine()) 标志收件人 sendData = RCPT TO: + 〈 + txtTo Text + 〉 + CRLF szData = System Text Encoding ASCII GetBytes(sendData ToCharArray()) NetStrm Write(szData szData Length) lstlog Items Add(RdStrm ReadLine()) 准备发送内容 sendData = DATA + CRLF szData = System Text Encoding ASCII GetBytes(sendData ToCharArray()) NetStrm Write(szData 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 szData Length) lstlog Items Add(RdStrm ReadLine()) 退出 sendData = QUIT + CRLF szData = System Text Encoding ASCII GetBytes(sendData ToCharArray()) NetStrm Write(szData szData Length) lstlog Items Add(RdStrm ReadLine()) 关闭连接 NetStrm Close() RdStrm Close() lstlog Items Add( 连接关闭 ) lstlog Items Add( 发送成功 )
大家还可以参考 使用C# 创建邮件发送组件(SMTP)
IIS SMTP自带的基本的发信组件CDONTS
你不必专门下载 微软已经提供了这个组件 只要安装了 NT的SMTP就会有的
优点 组件由操作系统自带
缺点 功能比较差 可扩展性不强
Mymail = CreateObject( CDONTS NewMail )
Mymail From = *** 信件发送者信箱
Mymail To = *** 信件接收者信箱
Mymail CC = *** 抄送
Mymail BCC = *** 密件发送
Mymail Subject = *** 信件主题
Mymail Body = *** 信件正文
设置优先级 不重要 一般 重要
Mymail Importance =
Mymail Send()
Mymail = Nothing
使用JMail组件
Jmail具有以下特点
( )可以发送附件
( )详细日志能力 便于你查看问题所在
( )设置邮件发送的优先级
( )支持多种格式的邮件发送 比如说以HTML或者TXT的方式发送邮件 这是个免费的组件
( )密件发送/(CC)抄送/紧急信件发送能力
( )最关键的就是——免费的组件 不必发钱 所以非常值得使用
网站 目前版本是
JMail组件的常用属性
Body 邮件正文
Logging 调用Log记录 供Debug用
Priority 邮件的优先程度 从 到
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 = JMail Sender = JMail Subject = subject JMail Body = body JMail AddRecipient( ) JMail AddAttachment( c:\\go gif ) JMail Priority = JMail Execute() JMail = Nothing
cha138/Article/program/net/201311/13955相关参考
.NET邮件发送 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! usingSystem;&nbs
邮件发送System.Net.Mail 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前台页面S
ASP.NET定时发送邮件总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 香港那边公司的市场
我们经常看到在一些博客页面里可以发表评论通过电子邮件通知版主(例如咱们的博客园)那么如何用发送电子邮件呢?我们可以借助NET提供的强大的类库达到目的 首先我们要引入SystemWebMail命名
ASP.NET自动发送邮件功能的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 有时我们需要
ASP.Net2.0发送邮件的代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
在ASP.NET中使用SmtpMail发送邮件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
使用ASP.NET两种发送邮件的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果你的AS
知识大全 .net Framework 2.0下发送邮件的方式
.netFramework2.0下发送邮件的方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET发送内嵌图片邮件的正确方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 很多企业