如何在VB中起动邮件发送程序,并填好地址、标题、正文及附件的关联? 用MAPI控件工程--》部件-->microsoft mapicontrols6.0,其它的设置可以到microsoft网站上查找 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你熟悉winsock编程和smtp,用winsock也很好! 最简单的:shell ("mailto:[email protected]&subject=!hgdfs&body=dfd")我记不大清楚了,好像是这样! 开始->运行输入Mailto:[email protected]?subject=help me!&body=Thank you!试试... 通过API函数ShellExecute再加上一些参数就可以实现发送带附件的邮件,下面是范例: Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Const SW_SHOW = 5 Private Sub Command1_Click() Debug.Print "[email protected]?subject=MySubject&Attach=""""c:\doc1.doc""""" Call ShellExecute(Me.hwnd, "open", _ "[email protected]?subject=MySubject&Attach=""c:\doc1.doc""", _ vbNullString, vbNullString, SW_SHOW) End Sub 上面的程序将 c:\doc1.doc 作为附件发送出去,上面的代码在OutLook 2000以及 Outlook Exress 5.5下运行通过 通过API函数ShellExecute再加上一些参数就可以实现发送带附件的邮件,下面是范例: Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Const SW_SHOW = 5 Private Sub Command1_Click() Debug.Print "[email protected]?subject=MySubject&Attach=""""c:\doc1.doc""""" Call ShellExecute(Me.hwnd, "open", _ "[email protected]?subject=MySubject&Attach=""c:\doc1.doc""", _ vbNullString, vbNullString, SW_SHOW) End Sub 上面的程序将 c:\doc1.doc 作为附件发送出去,上面的代码在OutLook 2000以及 Outlook Exress 5.5下运行通过 通过API函数ShellExecute再加上一些参数就可以实现发送带附件的邮件,下面是范例: Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Const SW_SHOW = 5 Private Sub Command1_Click() Debug.Print "[email protected]?subject=MySubject&Attach=""""c:\doc1.doc""""" Call ShellExecute(Me.hwnd, "open", _ "[email protected]?subject=MySubject&Attach=""c:\doc1.doc""", _ vbNullString, vbNullString, SW_SHOW) End Sub 上面的程序将 c:\doc1.doc 作为附件发送出去,上面的代码在OutLook 2000以及 Outlook Exress 5.5下运行通过 提请注意,以上的所有代码仅对OutLook系列软件有效!--------------------------------------------------------------------Made by Thirdapple's Studio 如果系统已经安装邮件软件并已经配置好,用shell "mailto:[email protected]?subject=Hello&body=你好"最简单,当然调API也能实现关于附件,我估计也是一个类似的参数,你加到后面就可以了 shell "mailto:[email protected]?subject=Hello&body=你好"对foxmial有效,我就是用它测试的,就是&Attach=""c:\file.fil""无效,不知是不是这么写,还是foxmail不支持 用API太复杂,直接引用outlook类库即可。dim mail1 as mailitem然后写标题,发件人,正文,多个附件等,并可直接用send发送。可用代码完全操作outlook。 建议引用Outlook的功能去实现,网上有较多资料可以找到,比如微软的MSDN上 在File选项中选择New Project建立一个新的工程,这时屏幕上会看到许多选项,例如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等...,这时要选Standard.EXE。 在Project下,选择Property属性选项;在general选项下,将Project Name改为email-send, 并将Form名称及Caption更改为email-send。 在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个textbox control,取名为subject、content、addr。并在三个textbox前各加入一个Label,将Caption分别改为subject、content、addr。 为方便读者了解彼此关系,以下表解释一遍:(TextBox)Name-----------------------------------------------subject(输入信件标题)content(输入信件内容)addr(输入信件要传送的位址)(Label)Caption-----------------------------------------------subject(输入信件标题提示)content(输入信件内容提示)addr(输入信件要传送的位址提示)将MAPIm1的各项property设置如下:download mail=TRUElogoUI= TRUEnewsession=FALSEusername="test" 这里将download mail设置为TRUE,当程序和mail server第一次连接时,会将新的mail download到local端。将logoUI设置为TRUE,则当您程序中logon名称输入错误时,系统会显示一个Message Box来让您输入正确的名称。由于这个程序仅使用到一条session,我们将它的值设置成FALSE。当然啦!如果您有许多session要建立的话,也可以将它设置成TRUE。 username中所填的,是我们在Exchange中所新增的设置文件名称;如果没有填内容的话,系统将会显示一些message box请您输入文件。 在屏幕的Form上加入三个Button control,logon、logoff与send,分别将Caption改为log on、log off、send。(Button)Name Caption--------------------------------------------------------logon(执行登入命令) logonlogoff(执行登出命令) logoffsend(执行传出信件命令) send 在 logon_Click()中加入以下程序代码,这个动作是使我们登录到mail server。MAPIS1.SignOnMAPIM1.SessionID = MS1.SessionIDMsgBox "your id is" + Str(MS1.SessionID) MS1.SignOn是作登录的动作。在登录时,因为已经将MAPIm1 control的download mail属性设置为TRUE,所以可以在屏幕上看到message box显示系统正在download mail。登录成功后,系统会传回一个sessionID,将该ID填入MAPIM1的SessionID中,这样就可以利用这条session来传送E-mail。 在 logoff_Click()中加入以下程序代码,这个动作是使我们离开mail server。MAPIS1.SignOff 在 send_Click()中加入以下程序代码,这个动作是使我们发送email。MAPIM1.ComposeMAPIM1.RecipDisplayName = addr.textMAPIM1.AddressResolveUI = TrueMAPIM1.MsgSubject = subject.text MAPIM1.MsgNoteText = content.textMAPIM1.SendMsgBox "you successful" Compose命令的主要目的,是使您可以改变RecipDisplayName的内容,将所需传送的E-mail地址、主题、文章内容分别填入RecipDisplayName、MsgSubject、MsgNoteText,接着用send命令发送。Step 3:用IE 3.0 Mail程序测试程序 执行上面设计的email-send程序。在subject textbox中填入"发信测试",在address textbox中填入[email protected],在content textbox中输入要传送的内容:"大家好!这是发信测试",接着按传送。这样信件就发送出去了! 执行IE 3.0选择接收信件,在mail选项中选择read mail。我们会在inbox中看到一封标题为"发信测试"的信件,接着我们看看它的内容,没错!那就是我们刚寄出的测试信。E-mail接收部分Step 1:程序设计 在File选项中选择New Project建立一个新的工程。在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。 接着在Project下,选择Property属性选项;在general选项下,将Project Name改为email-get,并将FORM名称及Caption更改为 email-get。 在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个Textbox control,分别取名为subject、content、indexno, 将其Caption改为mail-subject、mail-content、indexno;并在TextBox前各加入一个Label control,将Caption分别改为subject、content、indexno。 将MAPIm1的各项property设置如下:download mail=TRUElogoUI=TRUEnewsession=FALSEusername="test" 这些设置原理如同设计发送mail程序部分。接着,在屏幕的Form上加入一个Button control get-mail,将Caption改为get mail。如同发送mail 程序部分和mail server建立一条session。 在 get-mail_Click() 中加入以下程序代码,这个动作是使我们接收email。MAPIM1.FetchForm1.Caption=MAPIM1. MsgCountMAPIM1.MsgIndex=CINT(indexno.text)subjec.Text = MM1.MsgNoteTextcontent.Text = MAPI1.MsgSubject Fetch命令,是将信件抓到系统存贮器的inbuffer中。我们将信件抓回来后,可以由MsgCount property知道信件数量。接着可以用MsgIndex设置要看哪一封信件的内容、标题。Stept 2:测试mail接收程序 首先用任何一种mail程序,任意书写几封信到mail server。在Form1的Caption中,我们会看到所接收的信件的数量。执行上面设计的email-get程序,在indexno textbox中填入1。接着按get mail Button,这样信件内容及标题就会显示在content、subject两个TextBox中。恭喜您成功了! 在File选项中选择New Project建立一个新的工程,这时屏幕上会看到许多选项,例如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等...,这时要选Standard.EXE。 在Project下,选择Property属性选项;在general选项下,将Project Name改为email-send, 并将Form名称及Caption更改为email-send。 在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个textbox control,取名为subject、content、addr。并在三个textbox前各加入一个Label,将Caption分别改为subject、content、addr。 为方便读者了解彼此关系,以下表解释一遍:(TextBox)Name-----------------------------------------------subject(输入信件标题)content(输入信件内容)addr(输入信件要传送的位址)(Label)Caption-----------------------------------------------subject(输入信件标题提示)content(输入信件内容提示)addr(输入信件要传送的位址提示)将MAPIm1的各项property设置如下:download mail=TRUElogoUI= TRUEnewsession=FALSEusername="test" 这里将download mail设置为TRUE,当程序和mail server第一次连接时,会将新的mail download到local端。将logoUI设置为TRUE,则当您程序中logon名称输入错误时,系统会显示一个Message Box来让您输入正确的名称。由于这个程序仅使用到一条session,我们将它的值设置成FALSE。当然啦!如果您有许多session要建立的话,也可以将它设置成TRUE。 username中所填的,是我们在Exchange中所新增的设置文件名称;如果没有填内容的话,系统将会显示一些message box请您输入文件。 在屏幕的Form上加入三个Button control,logon、logoff与send,分别将Caption改为log on、log off、send。(Button)Name Caption--------------------------------------------------------logon(执行登入命令) logonlogoff(执行登出命令) logoffsend(执行传出信件命令) send 在 logon_Click()中加入以下程序代码,这个动作是使我们登录到mail server。MAPIS1.SignOnMAPIM1.SessionID = MS1.SessionIDMsgBox "your id is" + Str(MS1.SessionID) MS1.SignOn是作登录的动作。在登录时,因为已经将MAPIm1 control的download mail属性设置为TRUE,所以可以在屏幕上看到message box显示系统正在download mail。登录成功后,系统会传回一个sessionID,将该ID填入MAPIM1的SessionID中,这样就可以利用这条session来传送E-mail。 在 logoff_Click()中加入以下程序代码,这个动作是使我们离开mail server。MAPIS1.SignOff 在 send_Click()中加入以下程序代码,这个动作是使我们发送email。MAPIM1.ComposeMAPIM1.RecipDisplayName = addr.textMAPIM1.AddressResolveUI = TrueMAPIM1.MsgSubject = subject.text MAPIM1.MsgNoteText = content.textMAPIM1.SendMsgBox "you successful" Compose命令的主要目的,是使您可以改变RecipDisplayName的内容,将所需传送的E-mail地址、主题、文章内容分别填入RecipDisplayName、MsgSubject、MsgNoteText,接着用send命令发送。Step 3:用IE 3.0 Mail程序测试程序 执行上面设计的email-send程序。在subject textbox中填入"发信测试",在address textbox中填入[email protected],在content textbox中输入要传送的内容:"大家好!这是发信测试",接着按传送。这样信件就发送出去了! 执行IE 3.0选择接收信件,在mail选项中选择read mail。我们会在inbox中看到一封标题为"发信测试"的信件,接着我们看看它的内容,没错!那就是我们刚寄出的测试信。E-mail接收部分Step 1:程序设计 在File选项中选择New Project建立一个新的工程。在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。 接着在Project下,选择Property属性选项;在general选项下,将Project Name改为email-get,并将FORM名称及Caption更改为 email-get。 在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个Textbox control,分别取名为subject、content、indexno, 将其Caption改为mail-subject、mail-content、indexno;并在TextBox前各加入一个Label control,将Caption分别改为subject、content、indexno。 将MAPIm1的各项property设置如下:download mail=TRUElogoUI=TRUEnewsession=FALSEusername="test" 这些设置原理如同设计发送mail程序部分。接着,在屏幕的Form上加入一个Button control get-mail,将Caption改为get mail。如同发送mail 程序部分和mail server建立一条session。 在 get-mail_Click() 中加入以下程序代码,这个动作是使我们接收email。MAPIM1.FetchForm1.Caption=MAPIM1. MsgCountMAPIM1.MsgIndex=CINT(indexno.text)subjec.Text = MM1.MsgNoteTextcontent.Text = MAPI1.MsgSubject Fetch命令,是将信件抓到系统存贮器的inbuffer中。我们将信件抓回来后,可以由MsgCount property知道信件数量。接着可以用MsgIndex设置要看哪一封信件的内容、标题。Stept 2:测试mail接收程序 首先用任何一种mail程序,任意书写几封信到mail server。在Form1的Caption中,我们会看到所接收的信件的数量。执行上面设计的email-get程序,在indexno textbox中填入1。接着按get mail Button,这样信件内容及标题就会显示在content、subject两个TextBox中。恭喜您成功了! 有人说我在送分! 好吧!你说送就送了 现在我还可以讲给大家更多的送分秘密的。 应该怎样才不叫送分! 要我搞平均主义? 不是说大家不好,但实际上很多人是说不出什么有实际意义的东西的 也要给他们给分吗? 谁的态度正确,谁的回答正确 我就给谁,这样不对吗? 我还可以真实的讲给大家 他们说的他是我们公司的总工程师 他很少玩CSDN的 只是老跑他办公室不方便 才要求他登记个帐户的 另外,我是存有一定的私心的 但我也认为他回答的就是比别人好,这是可以查证的 这种事我可能还要继续下去的 这种情况CSDN不允许吗? 办个CSDN的目的和意义是什么? 你来CSDN的目的和意义又是什么? 不知大家看了我在CSDN上的问题的交流又有何说 但我自己可以坦然说,我不是那种无聊之徒 时间有限,不多说了 还请各位多多指正!http://www.csdn.net/expert/topic/870/870135.xml?temp=.4205438 用MAPI吗.用outlook也可以。如果你需要代码,我可以给你一份,当然直接用WinSocket也行 可以用OLE技术,和专门的邮件控件 看看你在CSDN上的行为吧无耻之极了你还不以为然?你会不会干点正事呀?把你这种人放在文革期间可就有意思了不过最多也是个张铁生而已你不会是第二个张铁生吧可怜虫!!! shell ("mailto:[email protected]&subject=!hgdfs&body=dfd") 散分 请问mdb数据库中如何建立存放图片的字段 同学让我帮忙看程序 MSHFlexGrid,急 如何在treeview下面添加多个节点[今天没分了请原谅] MS DTC 是什么来的?????????????????????????? //////打印问题,请教各位大侠// 串口通讯程序问题(VB中使用多个串口同时采集数据,急急!!!谢谢) 如何获取本机主机名 水晶报表8.0安装以后在VB6.0中的菜单 工程\更多acticex设计器 里找不到他的设计器。 用什么api函数可以使我的程序运行时隐藏windows状态栏。 如何用ADO快速的添加大批量记录
Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Const SW_SHOW = 5 Private Sub Command1_Click()
Debug.Print "[email protected]?subject=MySubject&Attach=""""c:\doc1.doc"""""
Call ShellExecute(Me.hwnd, "open", _
"[email protected]?subject=MySubject&Attach=""c:\doc1.doc""", _
vbNullString, vbNullString, SW_SHOW)
End Sub
上面的程序将 c:\doc1.doc 作为附件发送出去,上面的代码在OutLook 2000以及 Outlook Exress 5.5下运行通过
Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Const SW_SHOW = 5 Private Sub Command1_Click()
Debug.Print "[email protected]?subject=MySubject&Attach=""""c:\doc1.doc"""""
Call ShellExecute(Me.hwnd, "open", _
"[email protected]?subject=MySubject&Attach=""c:\doc1.doc""", _
vbNullString, vbNullString, SW_SHOW)
End Sub
上面的程序将 c:\doc1.doc 作为附件发送出去,上面的代码在OutLook 2000以及 Outlook Exress 5.5下运行通过
Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Const SW_SHOW = 5 Private Sub Command1_Click()
Debug.Print "[email protected]?subject=MySubject&Attach=""""c:\doc1.doc"""""
Call ShellExecute(Me.hwnd, "open", _
"[email protected]?subject=MySubject&Attach=""c:\doc1.doc""", _
vbNullString, vbNullString, SW_SHOW)
End Sub
上面的程序将 c:\doc1.doc 作为附件发送出去,上面的代码在OutLook 2000以及 Outlook Exress 5.5下运行通过
--------------------------------------------------------------------
Made by Thirdapple's Studio
shell "mailto:[email protected]?subject=Hello&body=你好"
最简单,当然调API也能实现
关于附件,我估计也是一个类似的参数,你加到后面就可以了
对foxmial有效,我就是用它测试的,就是&Attach=""c:\file.fil""无效,不知是不是这么写,还是foxmail不支持
dim mail1 as mailitem
然后写标题,发件人,正文,多个附件等,并可直接用send发送。
可用代码完全操作outlook。
网上有较多资料可以找到,
比如微软的MSDN上
在Project下,选择Property属性选项;在general选项下,将Project Name改为email-send, 并将Form名称及Caption更改为email-send。
在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个textbox control,取名为subject、content、addr。并在三个textbox前各加入一个Label,将Caption分别改为subject、content、addr。 为方便读者了解彼此关系,以下表解释一遍:
(TextBox)
Name
-----------------------------------------------
subject(输入信件标题)
content(输入信件内容)
addr(输入信件要传送的位址)(Label)
Caption
-----------------------------------------------
subject(输入信件标题提示)
content(输入信件内容提示)
addr(输入信件要传送的位址提示)将MAPIm1的各项property设置如下:
download mail=TRUE
logoUI= TRUE
newsession=FALSE
username="test" 这里将download mail设置为TRUE,当程序和mail server第一次连接时,会将新的mail download到local端。将logoUI设置为TRUE,则当您程序中logon名称输入错误时,系统会显示一个Message Box来让您输入正确的名称。由于这个程序仅使用到一条session,我们将它的值设置成FALSE。当然啦!如果您有许多session要建立的话,也可以将它设置成TRUE。 username中所填的,是我们在Exchange中所新增的设置文件名称;如果没有填内容的话,系统将会显示一些message box请您输入文件。 在屏幕的Form上加入三个Button control,logon、logoff与send,分别将Caption改为log on、log off、send。(Button)
Name Caption
--------------------------------------------------------
logon(执行登入命令) logon
logoff(执行登出命令) logoff
send(执行传出信件命令) send 在 logon_Click()中加入以下程序代码,这个动作是使我们登录到mail server。
MAPIS1.SignOn
MAPIM1.SessionID = MS1.SessionID
MsgBox "your id is" + Str(MS1.SessionID) MS1.SignOn是作登录的动作。在登录时,因为已经将MAPIm1 control的download mail属性设置为TRUE,所以可以在屏幕上看到message box显示系统正在download mail。登录成功后,系统会传回一个sessionID,将该ID填入MAPIM1的SessionID中,这样就可以利用这条session来传送E-mail。 在 logoff_Click()中加入以下程序代码,这个动作是使我们离开mail server。
MAPIS1.SignOff 在 send_Click()中加入以下程序代码,这个动作是使我们发送email。
MAPIM1.Compose
MAPIM1.RecipDisplayName = addr.text
MAPIM1.AddressResolveUI = True
MAPIM1.MsgSubject = subject.text
MAPIM1.MsgNoteText = content.text
MAPIM1.Send
MsgBox "you successful"
Compose命令的主要目的,是使您可以改变RecipDisplayName的内容,将所需传送的E-mail地址、主题、文章内容分别填入RecipDisplayName、MsgSubject、MsgNoteText,接着用send命令发送。Step 3:用IE 3.0 Mail程序测试程序
执行上面设计的email-send程序。在subject textbox中填入"发信测试",在address textbox中填入[email protected],在content textbox中输入要传送的内容:"大家好!这是发信测试",接着按传送。这样信件就发送出去了!
执行IE 3.0选择接收信件,在mail选项中选择read mail。我们会在inbox中看到一封标题为"发信测试"的信件,接着我们看看它的内容,没错!那就是我们刚寄出的测试信。E-mail接收部分Step 1:程序设计
在File选项中选择New Project建立一个新的工程。在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。
接着在Project下,选择Property属性选项;在general选项下,将Project Name改为email-get,并将FORM名称及Caption更改为 email-get。
在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个Textbox control,分别取名为subject、content、indexno, 将其Caption改为mail-subject、mail-content、indexno;并在TextBox前各加入一个Label control,将Caption分别改为subject、content、indexno。 将MAPIm1的各项property设置如下:
download mail=TRUE
logoUI=TRUE
newsession=FALSE
username="test" 这些设置原理如同设计发送mail程序部分。接着,在屏幕的Form上加入一个Button control get-mail,将Caption改为get mail。如同发送mail 程序部分和mail server建立一条session。 在 get-mail_Click() 中加入以下程序代码,这个动作是使我们接收email。
MAPIM1.Fetch
Form1.Caption=MAPIM1. MsgCount
MAPIM1.MsgIndex=CINT(indexno.text)
subjec.Text = MM1.MsgNoteText
content.Text = MAPI1.MsgSubject
Fetch命令,是将信件抓到系统存贮器的inbuffer中。我们将信件抓回来后,可以由MsgCount property知道信件数量。接着可以用MsgIndex设置要看哪一封信件的内容、标题。Stept 2:测试mail接收程序
首先用任何一种mail程序,任意书写几封信到mail server。在Form1的Caption中,我们会看到所接收的信件的数量。执行上面设计的email-get程序,在indexno textbox中填入1。接着按get mail Button,这样信件内容及标题就会显示在content、subject两个TextBox中。恭喜您成功了!
在Project下,选择Property属性选项;在general选项下,将Project Name改为email-send, 并将Form名称及Caption更改为email-send。
在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个textbox control,取名为subject、content、addr。并在三个textbox前各加入一个Label,将Caption分别改为subject、content、addr。 为方便读者了解彼此关系,以下表解释一遍:
(TextBox)
Name
-----------------------------------------------
subject(输入信件标题)
content(输入信件内容)
addr(输入信件要传送的位址)(Label)
Caption
-----------------------------------------------
subject(输入信件标题提示)
content(输入信件内容提示)
addr(输入信件要传送的位址提示)将MAPIm1的各项property设置如下:
download mail=TRUE
logoUI= TRUE
newsession=FALSE
username="test" 这里将download mail设置为TRUE,当程序和mail server第一次连接时,会将新的mail download到local端。将logoUI设置为TRUE,则当您程序中logon名称输入错误时,系统会显示一个Message Box来让您输入正确的名称。由于这个程序仅使用到一条session,我们将它的值设置成FALSE。当然啦!如果您有许多session要建立的话,也可以将它设置成TRUE。 username中所填的,是我们在Exchange中所新增的设置文件名称;如果没有填内容的话,系统将会显示一些message box请您输入文件。 在屏幕的Form上加入三个Button control,logon、logoff与send,分别将Caption改为log on、log off、send。(Button)
Name Caption
--------------------------------------------------------
logon(执行登入命令) logon
logoff(执行登出命令) logoff
send(执行传出信件命令) send 在 logon_Click()中加入以下程序代码,这个动作是使我们登录到mail server。
MAPIS1.SignOn
MAPIM1.SessionID = MS1.SessionID
MsgBox "your id is" + Str(MS1.SessionID) MS1.SignOn是作登录的动作。在登录时,因为已经将MAPIm1 control的download mail属性设置为TRUE,所以可以在屏幕上看到message box显示系统正在download mail。登录成功后,系统会传回一个sessionID,将该ID填入MAPIM1的SessionID中,这样就可以利用这条session来传送E-mail。 在 logoff_Click()中加入以下程序代码,这个动作是使我们离开mail server。
MAPIS1.SignOff 在 send_Click()中加入以下程序代码,这个动作是使我们发送email。
MAPIM1.Compose
MAPIM1.RecipDisplayName = addr.text
MAPIM1.AddressResolveUI = True
MAPIM1.MsgSubject = subject.text
MAPIM1.MsgNoteText = content.text
MAPIM1.Send
MsgBox "you successful"
Compose命令的主要目的,是使您可以改变RecipDisplayName的内容,将所需传送的E-mail地址、主题、文章内容分别填入RecipDisplayName、MsgSubject、MsgNoteText,接着用send命令发送。Step 3:用IE 3.0 Mail程序测试程序
执行上面设计的email-send程序。在subject textbox中填入"发信测试",在address textbox中填入[email protected],在content textbox中输入要传送的内容:"大家好!这是发信测试",接着按传送。这样信件就发送出去了!
执行IE 3.0选择接收信件,在mail选项中选择read mail。我们会在inbox中看到一封标题为"发信测试"的信件,接着我们看看它的内容,没错!那就是我们刚寄出的测试信。E-mail接收部分Step 1:程序设计
在File选项中选择New Project建立一个新的工程。在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。
接着在Project下,选择Property属性选项;在general选项下,将Project Name改为email-get,并将FORM名称及Caption更改为 email-get。
在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个Textbox control,分别取名为subject、content、indexno, 将其Caption改为mail-subject、mail-content、indexno;并在TextBox前各加入一个Label control,将Caption分别改为subject、content、indexno。 将MAPIm1的各项property设置如下:
download mail=TRUE
logoUI=TRUE
newsession=FALSE
username="test" 这些设置原理如同设计发送mail程序部分。接着,在屏幕的Form上加入一个Button control get-mail,将Caption改为get mail。如同发送mail 程序部分和mail server建立一条session。 在 get-mail_Click() 中加入以下程序代码,这个动作是使我们接收email。
MAPIM1.Fetch
Form1.Caption=MAPIM1. MsgCount
MAPIM1.MsgIndex=CINT(indexno.text)
subjec.Text = MM1.MsgNoteText
content.Text = MAPI1.MsgSubject
Fetch命令,是将信件抓到系统存贮器的inbuffer中。我们将信件抓回来后,可以由MsgCount property知道信件数量。接着可以用MsgIndex设置要看哪一封信件的内容、标题。Stept 2:测试mail接收程序
首先用任何一种mail程序,任意书写几封信到mail server。在Form1的Caption中,我们会看到所接收的信件的数量。执行上面设计的email-get程序,在indexno textbox中填入1。接着按get mail Button,这样信件内容及标题就会显示在content、subject两个TextBox中。恭喜您成功了!
好吧!你说送就送了 现在我还可以讲给大家更多的送分秘密的。
应该怎样才不叫送分! 要我搞平均主义? 不是说大家不好,但实际上很多人是说不出什么有实际意义的东西的 也要给他们给分吗? 谁的态度正确,谁的回答正确 我就给谁,这样不对吗? 我还可以真实的讲给大家 他们说的他是我们公司的总工程师 他很少玩CSDN的 只是老跑他办公室不方便 才要求他登记个帐户的 另外,我是存有一定的私心的 但我也认为他回答的就是比别人好,这是可以查证的 这种事我可能还要继续下去的 这种情况CSDN不允许吗? 办个CSDN的目的和意义是什么? 你来CSDN的目的和意义又是什么? 不知大家看了我在CSDN上的问题的交流又有何说 但我自己可以坦然说,我不是那种无聊之徒 时间有限,不多说了 还请各位多多指正!http://www.csdn.net/expert/topic/870/870135.xml?temp=.4205438