1、使用outLook提供的发送 如:我见过的用友软件U8生产制造(演示版),其中的邮件功能就是通过调用outLook的ActiveX 组件 优点:开发简单 缺点:依赖outlook组件,SMTP 邮件服务 邮件发送的代码如下:

    Private Sub Send()
Dim outObj As New Outlook.Application()
Dim Item As Outlook.MailItemClass
Item = outObj.CreateItem(0)
Item.To = "lihonggen0@163.com "
Item.Subject = "hello"
Item.Body = "hell"
Item.Attachments.Add("C:/abc.txt")
Item.Send()
End Sub

参考:使用 Microsoft Outlook 2002 开发解决方案http://www.microsoft.com/china/msdn/library/dndotnetout2k2/html/odc_oldevsol.asp 2、WEB开发,在ASP.NET中引用System.Web.Mail类 System.Web.Mail 命名空间包含使您可以使用 CDOSYS(Windows 2000 的协作数据对象)消息组件来构造和发送消息的类。邮件消息是通过内置在 Microsoft Windows 2000 中的 SMTP 邮件服务或任意的 SMTP 服务器来传送的。此命名空间中的类可以在 ASP.NET 或任何托管应用程序 MailAttachment提供用于构造电子邮件附件的属性和方法。 MailMessage提供用于构造电子邮件的属性和方法。 SmtpMail提供用于使用 Windows 2000 的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法。 邮件可以通过 Microsoft Windows 2000 中内置的 SMTP 邮件服务或任意 SMTP 服务器来传送。System.Web.Mail 命名空间中的类型可以在 ASP.NET 或任何托管应用程序使用。 Smtp服务器的设置,现在一些免费邮件提供商是不再提供针对所有邮件提供Smtp服务,在发送邮件的时候,需要验证用户信息,考虑Smtp用户验证问题 如果Smtp服务器在本地计算机,发送速度很快的,基本上不用担心,如果不是本地服务器,那么发送的时候最好不要以此太多,一是速度问题,二是以此发送太多邮件,Smtp服务器可能认为是垃圾邮件而拒绝服务 代码如下:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mailObj As New MailMessage()
Dim smtp As SmtpMail
'定义SMTP服务器的名称
smtp.SmtpServer = "smtp.XXX.com"
'定义邮件的发送地址
mailObj.From = "lihonggen@XXX.com"
'定义邮件的接收地址
mailObj.To = " AAA@XXX.com"
'定义邮件的暗送地址
mailObj.Bcc= "aa@sina.com"
'定义邮件的抄送地址
mailObj.Cc = "aaa@sina.com"
'定义邮件的主题
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

3、在VB.NET或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)
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) http://www.aspcool.com/lanmu/browse1.asp?ID=968&bbsuser=csharp 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的时间就长了!

几种不同的邮件发送解决方案相关推荐

  1. .NET环境下几种不同的邮件发送解决方案

    转自:http://dev.yesky.com/msdn/241/3417241.shtml 1.使用outLook提供的发送 如:我见过的用友软件U8生产制造(演示版),其中的邮件功能就是通过调用o ...

  2. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本.富文本.HTML 等格式的邮件 本文将聊聊利用 Python ...

  3. php email,两种PHP邮件发送的方式

    有不少程序员在用PHP发送邮件的时候会遇到几个问题,那么遇到问题就要有解决问题的思路,本文就是根据php实现邮件发送的思路,整理下来的一篇文章,在遇到不同问题时给出的不同解决方法,感兴趣的小伙伴们可以 ...

  4. 腾讯企业邮箱外域邮件发送失败原因及其解决方案

    腾讯企业邮箱外域邮件发送失败原因及其解决方案 参考文章: (1)腾讯企业邮箱外域邮件发送失败原因及其解决方案 (2)https://www.cnblogs.com/chen110xi/p/465067 ...

  5. 带附件/密送/抄送的 javaMail 邮件发送 -- java_demo(两种实现方式)

    话不多说,上代码--第一种,自己实现的,参考资料 javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot 常用的邮件服务器名称.地址及SSL/非SSL协议端口号 Jav ...

  6. 邮件发送 --- 纯Java、JavaWeb、Spring三种实现方式

    邮件发送学习笔记~ 一.邮件发送介绍 要在网络上实现邮件功能,必须要有专门的邮件服务器! 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中! ...

  7. php 邮件发送验证码,发送验证码邮件有什么好的解决方案?

    用户Passport系统,注册,找回密码都是通过邮件发送验证码,有什么好的方案实现. 我之前用的是私人的QQ邮箱,发现偶尔系统会来一封邮件要我输入验证码,而且就怕用多了会被腾讯拉黑或者自动移到垃圾箱处 ...

  8. 邮局解决方案 发邮件邮箱使用 系统邮件自动发送 邮件发送提醒 网易免费企业邮 设置自己的域名邮箱

    环境介绍 搭建的系统与自建网站会用到邮件注册,邮件提醒 想过自己搭建邮件服务器,但是云商不给开邮件的端口 有人推荐使用QQ邮箱,或者其他第三方白嫖邮箱 ,可能会造成屏蔽或者用户泄露 实现 使用自己的域 ...

  9. Spring boot锦集(二):整合邮件发送的四种方法 | 纯文本的邮件、带有图片的邮件、带Html的邮件、带附件的邮件(很详细)

    前言 邮件发送,听着很神秘,然而对于Spring Boot来说,这个功能已被集成好,只需引入spring-boot-starter-mail依赖后,少量代码即可实现大部分邮件发送需求. 本文以异常教程 ...

最新文章

  1. 为经典版eclipse增加web and JavaEE插件
  2. 如何“主动出击”提升网站的收录速度?
  3. Android笔记之FragmentTabHost实现选项卡
  4. 查看db2数据库名linux,【名说】DB2数据库备份与恢复(linux环境)
  5. [转载] Java复制对象与集合工具类
  6. 阿里首推的“SpringBoot+Vue全栈项目”有多牛X?
  7. ubuntu下打开matlab_ubuntu下matlab安装,添加中文支持与启动
  8. MBProgressHud添加自定义动画
  9. smc数显压力表设定方法_日本SMC数显压力表中文说明书ISE40A-01-P-ML
  10. 【Baidu Apollo】3 定位
  11. 【良心教程】保姆级Python爬虫入门教程(一)——爬虫之初见
  12. 安装企业宽带的一些问题
  13. Code Combat学习心得(Kithgard地牢45关Mightier Than the Sword)
  14. 银行IT软件服务的公司 (不包括被收购的企业),统计国内员工人数比较多的企业
  15. 2进制转16进制完整代码
  16. 使用CainAbel进行网络嗅探
  17. java npv,NPV,NPVR,PI和IRR存在数量关系。()
  18. 关于碧螺春的江湖之三 【苏州 碧螺春 营养成分 健康价值】
  19. Vue实现媒体文件下载
  20. 得到Iphone屏幕分辨率

热门文章

  1. 产品经理如何利用ER图,指导原型设计?
  2. 互联网晚报 | 12月27日 星期一 | 蚂蚁消费金融增资220亿;小米MIUI13正式官宣;《蜘蛛侠3》登顶全球年度票房冠军...
  3. 产品经理眼中的供应链、物流与采购管理
  4. 2020中国淘宝村研究报告
  5. html怎么设置椭圆文本框,html – 避免CSS border-radius中的椭圆形状
  6. 教育大数据隐私保护机制与技术研究
  7. 地方政府大数据发展的现实与理想
  8. 作者:曾伟,电子科技大学副教授。
  9. 无线 iphone客户端测试白皮书(二)
  10. Linux有问必答:如何更新过期版本的Ubuntu