知识大全 .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邮件发送

.NET邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSystem;&nbs

知识大全 邮件发送 System.Net.Mail

邮件发送System.Net.Mail  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前台页面S

知识大全 ASP.NET定时发送邮件总结

ASP.NET定时发送邮件总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  香港那边公司的市场

知识大全 从asp.net页面发送电子邮件

  我们经常看到在一些博客页面里可以发表评论通过电子邮件通知版主(例如咱们的博客园)那么如何用发送电子邮件呢?我们可以借助NET提供的强大的类库达到目的  首先我们要引入SystemWebMail命名

知识大全 ASP.NET自动发送邮件功能的实现

ASP.NET自动发送邮件功能的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有时我们需要

知识大全 ASP.Net 2.0 发送邮件的代码

ASP.Net2.0发送邮件的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 在ASP.NET中使用SmtpMail发送邮件

在ASP.NET中使用SmtpMail发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在

知识大全 使用ASP.NET两种发送邮件的方法

使用ASP.NET两种发送邮件的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你的AS

知识大全 .net Framework 2.0下发送邮件的方式

.netFramework2.0下发送邮件的方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET发送内嵌图片邮件的正确方法

ASP.NET发送内嵌图片邮件的正确方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很多企业