贴上来是其中一个贴子,其他的内容在参考资料的网址里
在香坊等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作专业公司,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸网站建设,香坊网站建设费用合理。
Visual Basic 6中发送邮件的新方法
用VB6编写发送邮件的程序,有多种E-mail组件可供选择,如MAPIMessages、IIS4.0附带的CDONTS(NTS Collaboration Data Objects)以及许多第三方厂商开发的Email软件等。本文介绍用CDONTS开发VB下的邮件程序方法。
1. 确认已安装SMTP服务器
首先,必须确认在IIS服务器上已安装SMTP服务器,这是安装Option Pack时被缺省安装的选项。如果SMTP服务器已安装,在System32目录下会存在一个名为cdonts.dll的文件。
2. 最简单的邮件发送程序
以下是一个最简单的邮件发送程序,它由me@hotmail点虐 向abc@263点虐 发出一封标题为“Title”、内容为“Hello”的E-mail:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
ObjMail.Send "me@hotmail点虐 ", "abc@263点虐 ","Title","Hello"
Set objMail=nothing
End Sub
3. 发送邮件附件
如果有附加的文件需要随同邮件传送,可以使用CDONTS的AttachFile方法:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
With ObjMail
.From= "me@hotmail点虐 "
.To= "abc@263点虐 "
.Subject="Title"
.Body="Hello"
.AttachFile "c:\document\ sample.doc","sample.doc"
.Send
End With
Set objMail=nothing
End Sub
4. CDONTS组件常用属性和方法
CDONTS组件常用的属性和方法列举如下:
属性:
Version:返回CDONTS组件的版本号
MailFormat:邮件格式,1-普通文本类型;0-MIME类型
Cc:设置一个或多个参阅的邮件地址
From:邮件发送者的地址
To :邮件接受者的地址
Subject:标题
Body:内容
BodyFormat:内容格式,1-普通文本;0-超文本
方法:
AttachFile:附加一个文件
AttachURL:附加一个地址
Send:发送邮件
5. 发送超文本格式的E-mail
你一定见到过许多使用超文本格式的E-mail,其中不但可以有图片、声音,甚至还可以嵌入动画。如果给你的朋友也发送一封这样的邮件,一定会带给他(她)意外的惊喜,因为这用一般的邮件发送程序是无能为力的。以下使用CDONTS组件发送一个HTML格式的邮件,其中包含有一幅名为sample.gif的图片,程序如下:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
Dim strHTML as String
StrHTML=""
StrHTML= StrHTML+""
StrHTML = StrHTML +"
用CDONTS发送Email的例子"
StrHTML= StrHTML+"
"
StrHTML= StrHTML+"
以上例子嵌入了图片sample.gif
"
StrHTML= StrHTML+""
With ObjMail
.From= "me@hotmail点虐 "
.To= "abc@263点虐 "
.Subject="Title"
.Body=strHTML
.AttachURL "c:\mydata\sample.gif","sample.gif"
.BodyFormat=0
.EmailFormat=0
.Send
End With
Set objMail=nothing
End Sub
到这里,相信大家一定发现SMTP邮件处理的一个缺陷了。SMTP服务器接收你的输出消息,但并不做发送者名字和地址的验证,这本是由SMTP的异步发送机制所决定的,但有人可能别有用心地用它来假扮别人发送邮件!本文强烈建议各位切勿轻易试用,一旦让ISP知道你的行径,你的帐号极可能会被立即删除。
1、使用outLook提供的发送
如:我见过的通过调用outLook的ActiveX组件
优点:开发简单
缺点:依赖outlook组件,SMTP 邮件服务
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服务器可能认为是垃圾邮件而拒绝服务
3、在VB.NET或C#开发Windows 应用程序中使用System.Net.Sockets
也是基于SMTP协议
一、SMTP协议简介
1、 客户端通过服务器的25端口建立TCP/IP连接
服务器端: 220 server点抗 Simple Mail Transfer Service Ready
2、 客户端使用“HELO”命令标识发件人
客户端:HELO server点抗
服务器端:250 server点抗
3、 客户端发送MAIL命令,服务器端以OK作为响应表明准备接收
客户端: MAIL FROM: A@B点抗
服务器端: 250 OK
4、 客户端发送RCPT命令标识收件人,服务器端回应是否愿意为收件人接受邮件
客户端:RCPT TO: c@d点抗
服务器端:250 OK
5、 协商结束后用命令DATA发送发送邮件
客户端:DATA
服务器端:354 Start mail input: end with CRLF.CRLF
6、 客户端以.表示结束输入内容一起发送出去
客户端:Subject: CRLF
内容CRLF
.CRLF
7、客户端用QUIT命令退出。
客户端:QUIT
服务器端:250 server点抗 closing transmission channel
优点:可以在此基础上开发出自己的组件,利用Sockets我们可以进行网络编程开发
缺点:程序量相对较多,
4、IIS SMTP自带的基本的发信组件CDONTS
你不必专门下载,微软已经提供了这个组件,只要安装了2000,NT的SMTP就会有的。
优点:组件由操作系统自带
缺点:功能比较差,可扩展性不强
5、使用JMail组件
Jmail具有以下特点:
(1)可以发送附件;
(2)详细日志能力,便于你查看问题所在;
(3)设置邮件发送的优先级;
(4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。
(5)密件发送/(CC)抄送/紧急信件发送能力;
(6)最关键的就是--免费的组件,不必发钱,所以非常值得使用。
Private Sub Command1_Click()
Dim cm As New CDO.Message 'CDO.message是一个发送邮件的对象
'Set cm = CreateObject("CDO.Message") '创建对象 '引用路径:C:\Windows\system32\cdosys.dll'这个是要引用的,如果不引用,可以用这句也行
cm.From = "30687724@qq点抗 " '设置发信人的邮箱"
cm.To = "suxg@eshinetech点抗 " '设置收信人的邮箱
cm.Subject = "主题:邮件发送试验" '设定邮件的主题
'cm.TextBody = '邮件正文,使用文本格式发送邮件,如果太复杂了就不行了,要用下面这种
cm.HtmlBody = "邮件发送试验^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" '使用html格式发送邮件
cm.AddAttachment "D:\1.txt" '发的附件名与地址
stUl = "" '微软服务器网址,固定的,不用改的
With cm.Configuration.Fields
.Item(stUl "smtpserver") = "smtp.qq点抗 " 'SMTP服务器地址
.Item(stUl "smtpserverport") = 25 'SMTP服务器端口
.Item(stUl "sendusing") = 2 '发送端口
.Item(stUl "smtpauthenticate") = 1 '需要提供用户名和密码,0是不提供 '
.Item(stUl "sendusername") = "30687724" '发送方邮箱名称,不用输入@后面的东西
.Item(stUl "sendpassword") = "suxi87724" '发送方邮箱密码
.Update
End With
cm.Send '最后当然是执行发送了
Set cm = Nothing
'发送成功后即时释放对象
End Sub
在Identity2.0里面封装了IIdentityMessageService接口,可以用来发送接收邮件。
看看
Imports System.Threading.Tasks
Imports System.Security.Claims
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports Microsoft.Owin
Imports Microsoft.Owin.Security
public function SendAsync(message as IdentityMessage) as task
dim credentialUserName = "邮箱登录名"
dim sentFrom = "你的邮箱地址"
dim pwd= "邮箱登录密码";
dim client as new System.Net.Mail.SmtpClient("smtp服务器地址")
client.Port = 25'mtp邮件服务器端口
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
client.UseDefaultCredentials = false
dim credentials as new System.Net.NetworkCredential(credentialUserName, pwd)
client.EnableSsl = true
client.Credentials = credentials
dim mail as new System.Net.Mail.MailMessage(sentFrom, message.Destination)
mail.Subject = message.Subject
mail.Body = message.Body
return client.SendMailAsync(mail)
end function
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款