用VB收发电子邮件Word文档下载推荐.docx
《用VB收发电子邮件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用VB收发电子邮件Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。

一、邮件发送程序
邮件发送程序的基本处理过程是:
根据用户输入信息组成邮件,然后使用MAPI消息控件的Send方法将邮件发出。
编程步骤如下:
1.xx一个VB项目。
2•将缺省窗体Forml的Caption属性设置为"
发送邮件"
。
3.将MAPI控件加入VB工具框。
4.在Forml中加入一个MAPI会话控件MAPISession1和一个MAPI消息控件MAPIMessages1。
5.在Forml中加入三个文本框控件,将它们的Name属性分别设置为txtSendTo、txtSubject、txtMessage,并将txtMessage的Multiline属性设置为True。
这三个文本框控件将分别用于填写邮件的收件人、主题和内容。
6.在Form1中加入三个标签控件,将它们的Caption属性分别设置为"
收件人"
、"
主题"
和"
内容"
并将它们放在合适的位置用以标注相应的文本框控件。
7.在Form1中加入一个命令按钮控件将其Caption属性和Name属性分别设置为"
发送"
cmdSend"
8.将下列代码加入Form1的Form_Load事件:
PrivateSubForm_Load()
MAPISession1.SignOn
EndSub
9.将下列代码加入Form1的Form_Unload事件:
PrivateSubForm_Unload(CancelAsInteger)
MAPISession1.SignOff
10.将下列代码加入cmdSend的Click事件:
PrivateSubcmdSend_Click()
WithMAPIMessages1
.MsgIndex=-1
.RecipDisplayName=txtSendTo.Text
.MsgSubject=txtSubject.Text
.MsgNoteText=txtMessage.Text
.SessionID=MAPISession1.SessionID
.Send
EndWith
MsgBox"
邮件发送完毕!
"
?
"
发送邮件"
程序运行后如图2所示。
@@.JPG图2发送邮件@@
二、邮件接收程序
邮件接收程序比邮件发送程序稍微复杂一些。
首先需要使用MAPI消息控件
的Fetch方法读取邮件,这个过程将把用户收件箱中所有未读邮件全部装入MAPI
消息控件中。
然后检查MAPI消息控件的MsgCount属性以确定通过Fetch方法读取的邮件的总数。
接着,可以通过设置MAPI消息控件的Msglndex属性来指定具体需要处理哪一封邮件。
需要说明的是,MsgIndex属性值的计数是从0开始的,也就是说,第一封邮件的索引号是0,第二封邮件的索引号是1,依次类推。
编程步骤如下:
1.xx—个VB项目。
2•将缺省窗体Form1的Caption属性设置为"
接收邮件"
4.在Form1中加入一个MAPI会话控件MAPISession1和一个MAPI消息控件MAPIMessages1。
5.在Form1中加入三个标签控件和一个文本框控件,将三个标签控件的Name属性分别设置为lblMsgDateReceived、lblMsgOrigDisplayName、IbIMsgSubject将文本框控件的Name属性设置为txtMsgNoteText,并将标签控件的Caption属性和文本框控件的Text属性的内容清空。
这四个控件将分别用于显示邮件的日期、发件人、主题和内容。
6.将txtMsgNoteText控件的Locked属性和Multiline属性设置为True,ScrollBars属性设置为2-Vertical。
7•在Form1中再加入四个标签控件用于标注上述四个控件,将它们的Caption属性分别设置为"
日期"
、"
发件人"
8.在Form1中加入一个标签控件,将其Name属性设置为
lblMsgCount,Caption属性设置为”第0圭寸邮件,总计0圭寸邮件”。
该控件用于显示接收的邮件总数以及当前正在处理第几封邮件。
9.在Form1中加入三个命令按钮控件,将它们的Name属性分别设置为cmdPrevious、cmdNext、cmdClose,Caption属性分别设置为”上一圭寸”、"
下一圭寸"
关闭"
10.编写一个窗体级子例程FetchNewMail:
PublicSubFetchNewMail()
MAPIMessages1.FetchUnreadOnly=True
MAPIMessages1.Fetch
11.编写一个窗体级子例程DisplayMessage:
PublicSubDisplayMessage()
lblMsgCount.Caption="
第"
&
_
LTrim(Str(MAPIMessages1.MsgIndex+1))&
圭"
邮件,总计"
LTrim(Str(MAPIMessages1.MsgCount))&
封"
邮件"
lblMsgDateReceived.Caption=MAPIMessages1.MsgDateReceived
xtMsgNoteText.Text=MAPIMessages1.MsgNoteText
lblMsgOrigDisplayName.Caption=
MAPIMessages1.MsgOrigDisplayNamelblMsgSubject.Caption=MAPIMessages1.MsgSubject
12.将下列代码加入Forml的Form_Load事件:
MAPIMessages1.SessionID=MAPISession1.SessionID
FetchNewMail
DisplayMessage
13.将下列代码加入cmdPrevious的Click事件:
PrivateSubcmdPrevious_Click()
IfMAPIMessages1.MsgIndex>
0Then
MAPIMessages1.MsgIndex=
MAPIMessages1.MsgIndex-1
Else
Beep
EndIf
14.将下列代码加入cmdNext的Click事件:
PrivateSubcmdNext_Click()
IfMAPIMessages1.MsgIndex<
MAPIMessages1.MsgCount-1Then
MAPIMessages1.MsgIndex+1
15.将下列代码加入cmdClose的Click事件:
PrivateSubcmdClose_Click()
UnloadMe
程序运行后如图3所示。
@@.JPG图3接收邮件@@
本例是读取用户收件箱中所有未读邮件,如果要读取收件箱中所有的邮件,那么只需在执行Fetch方法之前,将MAPI消息控件的FetchUnreadOnly属性设置为False。
三、邮件附件
与处理邮件的方式一样,MAPI也为邮件的附件提供了一个计数器和一个索引。
在处理收到的邮件时,可以通过检查AttachmentCount属性来确定该邮件携带了多少个附件,然后可以通过设置AttachmentIndex属性依次处理每一个附件。
Attachmentlndex的合法取值范围为0至Attachmentlndex-1。
在设置了AttachmentIndex属性值后,可以读取附件的下列属性:
AttachmentName:
当附件是一个文件时,该属性用于指定文件的名称。
当附件是一个OLE对象
时,该属性用于指定对象的类型。
AttachmentPath:
该属性用于指定做为附件的文件的全路径名。
AttchmentPosition:
该属性用于指定附件在邮件内容部分中的位置。
当邮件收发程序显示邮件内容时,将使用该属性提供的信息把附件的标志放在合适的位置。
AttachmentType:
该属性用于指定附件的类型,其合法取值为三个整数型数值,在VB中分别由下列常量表示:
mapData-附件是一个数据文件
mapEOLE附件是一个嵌入式OLE对象
mapSOLE附件是一个静态OLE对象
发送邮件时,上述属性的使用方法与接收邮件时相同,只不过由读操作改为写操作了。
值得一提的是AttachmentIndex属性,发送邮件时可以将其设置为任意值。
而AttachmentCount属性则会自动设置为正确的值,无需人为设置。
用VB怎么发送邮件?
代码?
VisualBasic6中发送邮件的新方法
用VB6编写发送邮件的程序,有多种E-mail组件可供选择,如
MAPIMessagesIIS4.0附带的CDONTS(NTSCollaborationDataObjects以及许多第三方厂商开发的Email软件等。
本文介绍用CDONTS开发VB下的邮件程序方法。
1•确认已安装SMTP服务器
首先,必须确认在IIS服务器上已安装SMTP服务器,这是安装OptionPack时被缺省安装的选项。
如果SMTP服务器已安装,在System32目录下会存在一个名为cdonts.dll的文件。
2.最简单的邮件发送程序
PrivateSubcmdSendMail_Click()
DimobjMailasObject
SetobjMail=CreateObject("
CDFONTS.DLL"
)
3.发送邮件附件
如果有附加的文件需要随同邮件传送,可以使用CDONT啲AttachFile方
法:
WithObjMail
.Subject="
Title"
.Body="
Hello"
.AttachFile"
c:
\document\sample.doc"
"
sample.doc"
SetobjMail=nothing
4.CD0NTS组件常用属性和方法
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的图片,程序如下:
DimstrHTMLasString
StrHTML="
StrHTML=StrHTML+"
StrHTML=StrHTML+"
用CDONTS发送Email的例子"
以上例子嵌入了图片sample.gif"
.Body=strHTML
.AttachURL"
\mydata\sample.gif"
sample.gif"
.BodyFormat=0
.EmailFormat=0
到这里,相信大家一定发现SMTP邮件处理的一个缺陷了。
SMTP服务器接收你的输出消息,但并不做发送者名字和地址的验证,这本是由SMTP的异步
发送机制所决定的,但有人可能别有用心地用它来假扮别人发送邮件!
本文强烈建议各位切勿轻易试用,一旦让ISP知道你的行径,你的帐号极可能会被立即删除。